0
我正在尝试使用jQuery向其他服务器发送AJAX请求。我在本地经营。如果我使用HTML数据类型,我会得到经典的Origin http://127.0.0.1 is not allowed by Access-Control-Allow-Origin
。所以,我开始使用JSONP请求:使用AJAX从另一台服务器接收数据
$.ajax({
url: 'SomeRemoteServer/SomeFile',
dataType: 'jsonp',
success: function(data) {
// do stuff
},
error: function(d,msg) {
alert(msg);
}
});
的擦肩而过误差为parsingerror
和Chrome JS调试器输出Resource interpreted as Script but transferred with MIME type text/html
。仔细查看网络上的这个错误后,我发现错误来自于服务器,而不是我的脚本(它应该发回MIME类型application/json
或类似的东西)。
好吧,似乎服务器正在发送一些东西......我想赶上响应和自我处理解析。这是可行的吗?如果是的话如何?我试图$.ajax()
选项converters
但没有成功......
我的问题,如果服务器输出的text/html那么你肯定服务器想让你送JSONP请求给它? – Ejaz 2013-05-01 16:12:14
根据我的经验,“资源解释为脚本,但是以MIME类型text/html'传输”是*警告*,不是错误。如果你的代码不能正常工作,肯定还有其他的错误。 (例如,来自服务器的JSONP响应是否为有效脚本?)JSONP响应是*脚本*;它不是JSON(尽管它可能包含JSON),并且不应该使用'application/json'。 – apsillers 2013-05-01 16:14:10
@apsillers:显然这是无效的。我想在插入我的代码之前甚至检查它的有效性。我只想在url的html源代码上使用一些正则表达式。 – vanna 2013-05-01 16:20:18