我对同一起源政策有疑问......
我有使用JSON和XML数据的JavaScript代码。我知道我需要将JSON更改为JSONP,因为我的服务器位于不同的域上,但我是否只在客户端执行此操作?那么XML数据呢?也可以以某种方式加载跨域?
最后,是否有任何好的网站通过示例进行深入解释?
答案 0 :(得分:0)
在您的jsonp响应中对您的XML进行编码,然后让您的客户端将其解压缩并将其解释为XML。
答案 1 :(得分:0)
您必须修改服务器。您可以使用JSONP的XML原则。你只需要传递一个字符串:
E.g。假设您的服务器端程序位于/ xmlp。您传递callback
参数,然后脚本将XML输出包装在其中。
E.g。
/xmlp?callback=mycall
输出:
mycall('<root><el attr="value"/ ></root>');
然后在客户端解析XML(传递给JavaScript mycall
函数)。
答案 2 :(得分:0)
只要数据源位于不同的域中,就必须使用JSONP来获取数据。这适用于JSON和XML数据。 JSONP只是一个声明,它使您可以提供回调函数,并在远程调用完成后立即调用它。数据作为回调参数提供。
原因,您的API必须支持JSONP,一旦API请求包含“?callback = f”,它就必须返回类似
的内容{ f(data); }
和f - 是在页面上某处定义的函数。
因此,基本上当API调用完成后,调用回调函数。
您可以使用多种选项来使用来自不同来源的API