Javascript jQuery AJAX跨域问题
我在尝试从本地计算机、main.js文件的常规index.html和我自己的个人网站调用ajax时遇到了严重问题。ajax URL具有不同的域,看起来像:Javascript jQuery AJAX跨域问题,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,我在尝试从本地计算机、main.js文件的常规index.html和我自己的个人网站调用ajax时遇到了严重问题。ajax URL具有不同的域,看起来像: $.ajax({ type: 'GET', crossDomain: true, url: 'http://www.someURL.com/api/v1/comments/XXXXX', success: function(data){ console.log(data); } });
$.ajax({
type: 'GET',
crossDomain: true,
url: 'http://www.someURL.com/api/v1/comments/XXXXX',
success: function(data){
console.log(data);
}
});
我已尝试将类型更改为JSONP,但随后出现一个未捕获的SyntaxError错误:意外标记:。ajax调用成功且未被阻止,但数据是JSON。我尝试与CORS合作,并询问了我的许多开发人员朋友。我似乎无法得到答案,是数据库限制了我还是我有什么解决方案
编辑:
我甚至尝试使用以下设置.htaccess文件:
# Always set these headers.
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
Header always set Access-Control-Max-Age "1000"
Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"
收到错误:
跨源请求被阻止:同源策略不允许读取someURL.com/api/v1/comments/xxxxxxxxx上的远程资源。这可以通过将资源移动到同一域或启用CORS来解决
默认情况下,您在局域网内发出的请求将被浏览器阻止。要取消阻止跨源请求,您需要启用CORS。你可以使用浏览器插件来完成这项工作 以下是我最喜欢的chrome浏览器:
添加此扩展名后,打开发送AJAX调用的URL,并使用上面的加载项启用CORS请求。我甚至尝试使用:Always set this Header设置.htaccess文件。标题添加访问控制允许来源*标题添加访问控制允许标题来源,x-request-with,内容类型标题添加访问控制允许方法PUT,GET,POST,DELETE,OPTIONS标题始终设置访问控制最大年龄1000标题始终设置访问控制允许标题x-request-with,内容类型,来源,授权,接受,客户端安全令牌不涉及数据库。找出api是否提供jsonp兼容性,因为如果不提供,就没有jsonp选项可以做到这一点。让CORS工作真是一件痛苦的事,所以如果可能的话,试着通过jsonp解决它。这个代码有什么错误吗?@Jamie I将你两条评论的内容编辑到你的问题中。通常最好在问题中编辑较大的详细信息,如错误消息和您通过.htaccess文件尝试的内容,因为它允许附加格式,并有助于创建包含支持信息的完整问题。@War10ck同意-我不知道如何编辑我的大文本。谢谢你这么做!我刚想出来。