首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我必须做什么来规避JSON的JavaScript同源策略...这是否也适用于XML数据?

问我必须做什么来规避JSON的JavaScript同源策略...这是否也适用于XML数据?
EN

Stack Overflow用户
提问于 2010-12-22 11:39:50
回答 3查看 354关注 0票数 1

我对同源政策有疑问...

我有使用JSON和XML数据的JavaScript代码。我知道我需要将JSON更改为JSONP,因为我的服务器在不同的域上,但我只在客户端这样做吗?那么XML数据又如何呢?它也能以某种方式跨域加载吗?

最后,有没有好的网站对此进行深入解释,并举例说明?

EN

回答 3

Stack Overflow用户

发布于 2010-12-22 11:43:16

将XML编码到jsonp响应中,然后让客户端提取它并将其解释为XML。

票数 0
EN

Stack Overflow用户

发布于 2010-12-22 11:47:13

您确实需要修改服务器。您可以将JSONP的原理用于XML。你只需要传递一个字符串:

例如,假设您的服务器端程序位于/xmlp。您传递一个XML参数,然后脚本将callback输出包装在下面的代码中。

例如。

代码语言:javascript
复制
/xmlp?callback=mycall

输出:

代码语言:javascript
复制
mycall('<root><el attr="value"/ ></root>');

然后在客户端解析XML (传递给JavaScript mycall函数)。

票数 0
EN

Stack Overflow用户

发布于 2010-12-22 11:53:31

一旦数据源位于不同的域中,就必须使用JSONP来获取数据。这既适用于JSON数据也适用于XML数据。JSONP只是一个符号,它使你可以提供一个回调函数,一旦远程调用完成,它就会被调用。数据以回调参数的形式提供。

当然,您的API必须支持JSONP,只要对API的请求包含"?callback=f",它就必须返回如下内容

代码语言:javascript
复制
{ f(data); }

和f- is函数定义在页面上的某处。

所以,基本上当API调用完成时,回调函数就被调用了。

您有几个选项可以使用不同来源的API

使用YQL - http://developer.yahoo.com/yql/

  • Manually,纯JS或使用jQuery -JS的
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4505980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档