我知道这是流行的问题,人们通过在服务器端编写代理来解决它。但我想,以避免它,我有硬编码回调jsonResponse()
文件:Crossdomain JSONP与文本文件和硬编码回调
jsonpResponse({"keys": ["0", "2", "3", "4", "5", "6"], "promoted": [3, 10, 44, 47, 47, 31], "upcoming": [187, 14, 285, 366, 322, 225]});
,我想与JQuery.ajax()
从另一个域得到它:
$.ajax({
type: "GET",
url: URL + filename,
dataType: "text jsonp",
jsonpCallback: "jsonpResponse",
success: function(data) {
// wrapping data
}
});
,我得到一个错误:
XMLHttpRequest cannot load http://first.domain/filename.jsonp.
Origin http://second.domain is not allowed by Access-Control-Allow-Origin.
有没有办法做到我想要的那种方式?我真的必须使用代理吗?如果这是真的,为什么?
我相信你必须在'$ .ajax()'选项中设置['crossDomain:true'](http://api.jquery.com/jQuery.ajax/)。 –