我对同源政策有疑问...
我有使用JSON和XML数据的JavaScript代码。我知道我需要将JSON更改为JSONP,因为我的服务器在不同的域上,但我只在客户端这样做吗?那么XML数据又如何呢?它也能以某种方式跨域加载吗?
最后,有没有好的网站对此进行深入解释,并举例说明?
发布于 2010-12-22 11:43:16
将XML编码到jsonp响应中,然后让客户端提取它并将其解释为XML。
发布于 2010-12-22 11:47:13
您确实需要修改服务器。您可以将JSONP的原理用于XML。你只需要传递一个字符串:
例如,假设您的服务器端程序位于/xmlp。您传递一个XML参数,然后脚本将callback输出包装在下面的代码中。
例如。
/xmlp?callback=mycall输出:
mycall('<root><el attr="value"/ ></root>');然后在客户端解析XML (传递给JavaScript mycall函数)。
发布于 2010-12-22 11:53:31
一旦数据源位于不同的域中,就必须使用JSONP来获取数据。这既适用于JSON数据也适用于XML数据。JSONP只是一个符号,它使你可以提供一个回调函数,一旦远程调用完成,它就会被调用。数据以回调参数的形式提供。
当然,您的API必须支持JSONP,只要对API的请求包含"?callback=f",它就必须返回如下内容
{ f(data); }和f- is函数定义在页面上的某处。
所以,基本上当API调用完成时,回调函数就被调用了。
您有几个选项可以使用不同来源的API
使用YQL - http://developer.yahoo.com/yql/
https://stackoverflow.com/questions/4505980
复制相似问题