Javascript 请求正在与邮递员一起工作,但生成的代码段不起作用
因此,我试图通过AJAX在JavaScript中发送GET请求。问题是我可以用邮递员的方式发送请求,而且效果很好。当我使用该功能生成AJAX代码并将其插入my local index.html时,请求似乎被阻止了Javascript 请求正在与邮递员一起工作,但生成的代码段不起作用,javascript,ajax,postman,Javascript,Ajax,Postman,因此,我试图通过AJAX在JavaScript中发送GET请求。问题是我可以用邮递员的方式发送请求,而且效果很好。当我使用该功能生成AJAX代码并将其插入my local index.html时,请求似乎被阻止了 var settings = { "async": true, "crossDomain": true, "url": "http://www.bibsonomy.org/api/posts?resourcetype=bookmark&group=ukp
var settings = {
"async": true,
"crossDomain": true,
"url": "http://www.bibsonomy.org/api/posts?resourcetype=bookmark&group=ukp&format=json",
"method": "GET",
"headers": {
"Authorization": "Basic key",
"Cache-Control": "no-cache"
}
}
$.ajax(settings).done(function (response) {
console.log(response);
});
控制台输出:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource
at https://www.bibsonomy.org/api/posts?resourcetype=bookmark&group=ukp&format=json.
(Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
我不知道为什么它不工作,为什么邮递员没有收到这个错误。请在请求的标题中添加
访问控制允许来源:
。您应该尝试将它添加到您的设置中
xhrFields: {
withCredentials: true
},
crossDomain: true
这必须从服务器端处理。仅当服务器添加允许来自
localhost:port
(如果您正在开发)的请求的头时,
或者你可以加上
设置访问控制允许来源:“*”
以接受来自所有客户端的请求,
浏览器将能够成功完成请求
跨源验证是浏览器提供的针对跨域攻击的安全性。浏览器向服务器发送飞行前(选项)请求,以确保请求有效,并且在成功返回时,只发送有效请求。
因此,解决这个问题的可靠方法是在api提供程序(服务器)中进行修复,以接受来自域/本地主机的请求
但是,您可以仅针对浏览器进行变通,您可以检查此方法。我添加了
访问控制允许源代码“*”
没有感谢您,但很遗憾,我无法影响提供商/服务器。