我有一个正常的JSON提要,我在一个网址(normalJSONfeed)进行轮询。我每次都得到cross origin policy error
。当我无法更改JSON提要(换句话说,我无法在函数调用中包装JSON提要)时,如何更改$.ajax
函数以解决此限制。
$.ajax({
type : "GET",
dataType : "jsonp",
url : '/normalJSONfeed',
data : {}
success: function(obj){
}
});
答案 0 :(得分:1)
您无法在代码中更改任何内容,只允许您将JSON请求为JSONP。由于JSONP请求使用脚本标记来请求数据,因此在加载和处理数据之间没有任何关系可以影响它。
如果您无法更改服务器发送的内容,则需要一台服务器,它可以在响应到来之前更改响应。我已经设置a proxy server确实将JSON响应更改为JSONP响应。请求代理页面并将返回JSON的资源的URL作为参数发送。
示例:
$.ajax({
dataType : "jsonp",
url : 'http://jsonp.guffa.com/Proxy.ashx?url=' + encodeURIComponent('www.someserver.com/normalJSONfeed'),
success: function(obj){
}
});