jQuery ajax和getJSON请求命中访问控制允许源问题
我试图使用jquery的jQuery ajax和getJSON请求命中访问控制允许源问题,jquery,ajax,jsonp,Jquery,Ajax,Jsonp,我试图使用jquery的$.ajax或$.getJSON从不同的服务器获取文件,但我碰到了访问控制允许源代码墙,而jsonp选项似乎对我不起作用 该站点正在使用jQuery 1.5.1 以下是我的三个测试: 使用basic$.ajax,请求的url从未附加?回调=?: $.ajax({ url: url, datatype: 'jsonp', error: function(){console.log('error');}, success: function()
$.ajax
或$.getJSON
从不同的服务器获取文件,但我碰到了访问控制允许源代码墙,而jsonp选项似乎对我不起作用
该站点正在使用jQuery 1.5.1
以下是我的三个测试:
使用basic$.ajax,请求的url从未附加?回调=?
:
$.ajax({
url: url,
datatype: 'jsonp',
error: function(){console.log('error');},
success: function(){console.log('success');}
});
使用basic$.ajax进行黑客攻击,仍然会遇到跨站点问题:
$.ajax({
url: url + '.jsonp?callback=?',
datatype: 'jsonp',
error: function(){console.log('error');},
success: function(){console.log('success');}
});
使用$.getJSON可以解决跨站点问题,但不会触发错误案例:
$.getJSON(url + '?callback=?',
function(data){
console.log('success');
})
.error(function(){
console.log('error');
})
.success(function(){
console.log('success!');
});
有人知道我做错了什么吗?最后,我尝试测试url是否存在,如果不存在,则执行错误处理
编辑:我试图访问的url不存在。我希望会触发错误案例 以便能够从javascript访问外部资源。远程资源必须在响应标头中包含访问控制允许来源
。如果您可以控制该资源,则需要将此响应头添加到*
(如果您想要更严格的访问控制,则添加到您的域)
请在此处阅读更多信息:
如果您不控制该外部资源。解决方案更加棘手。有些人使用YUI进行跨域ajax调用。请参见此处:
如果您正在编写chrome扩展,API允许您向扩展授予从js访问其他域资源的权限。,以便能够从javascript访问外部资源。远程资源必须在响应标头中包含访问控制允许来源
。如果您可以控制该资源,则需要将此响应头添加到*
(如果您想要更严格的访问控制,则添加到您的域)
请在此处阅读更多信息:
如果您不控制该外部资源。解决方案更加棘手。有些人使用YUI进行跨域ajax调用。请参见此处:
如果您正在编写chrome扩展,API允许您向扩展授予从js访问其他域资源的权限。您必须指定超时时间:
$.ajax({
dataType: "jsonp",
url : url,
timeout : 1000
})
.done(function(data) {logdata(data); })
.fail(function() { logdata("error"); });
您必须指定一个超时时间:
$.ajax({
dataType: "jsonp",
url : url,
timeout : 1000
})
.done(function(data) {logdata(data); })
.fail(function() { logdata("error"); });
你可以用。此脚本允许您捕获错误(尽管没有任何有意义的错误消息)
主要浏览器支持:
- Internet Explorer 6+
- 火狐2+
- 铬1+
- 狩猎3+
- 歌剧9+
您可以使用。此脚本允许您捕获错误(尽管没有任何有意义的错误消息)
主要浏览器支持:
- Internet Explorer 6+
- 火狐2+
- 铬1+
- 狩猎3+
- 歌剧9+
您使用了数据类型,但您应该使用数据类型。您使用了数据类型,但您应该使用数据类型。我正在等待后端开发人员联机,但是如果文件存在,此端点可以工作(通常,尽管我目前存在问题),所以我假设这是正确的?他回来后我会查一查。另外,第三个案例没有涉及访问控制允许来源问题。关于为什么没有触发错误函数有什么想法吗?我正在等待后端开发人员联机,但是如果文件存在,这个端点就可以工作(通常,尽管我目前有问题),所以我假设它已经存在了?他回来后我会查一查。另外,第三个案例没有涉及访问控制允许来源问题。有没有想过为什么没有触发错误函数?尝试这样做只是为了检查,但问题不是超时,而是
access control allow origin
尝试这样做只是为了检查,但问题不是超时,而是access control allow origin
不真实datatype
和datatype
在AJAX中给出了完全相同的结果datatype
和datatype
在AJAX中给出了完全相同的结果