Javascript $.ajax请求与CORS

Javascript $.ajax请求与CORS,javascript,jquery,ajax,cors,cross-domain,Javascript,Jquery,Ajax,Cors,Cross Domain,我遇到AJAX请求的问题。我得到了以下错误: 错误:访问被拒绝 我尝试了这个jQuery AJAX请求: $.support.cors = true; $.ajax({ url: 'http://testwebsite.com/test', type: "GET", dataType: 'json', contentType: 'application/json', crossDomain: true, headers: { 'Ac

我遇到AJAX请求的问题。我得到了以下错误:

错误:访问被拒绝

我尝试了这个jQuery AJAX请求:

$.support.cors = true;
$.ajax({
    url: 'http://testwebsite.com/test',
    type: "GET",
    dataType: 'json',
    contentType: 'application/json',
    crossDomain: true,
    headers: {
        'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',
        'Access-Control-Allow-Origin': 'http://testwebsite/test',
        'Access-Control-Allow-Headers': '*',
        'Access-Control-Allow-Credentials': 'true'
    },
    xhrFields: {
        withCredentials: true
    },
    success: function(data) {
        alert("Data from Server" + JSON.stringify(data));
    },
    error: function(jqXHR, textStatus, errorThrown) {
        alert("You can not send Cross Domain AJAX requests: " + errorThrown);
    }
});
谁能告诉我我错过了什么。提前感谢。

如评论中所述,CORS保护的设计使网站无法直接访问另一网站(在浏览器中)的内容,除非被访问的网站同意

如果一个站点为了绕过防御只需要发送一些头文件,这将彻底破坏CORS的优势

相反,您需要使用CORS代理。它是一个服务器,当发出请求时,如
yourCORSproxy.example.com/http://testwebsite/test
将加载并返回页面,但允许使用CORS(与普通代理一样,但启用了CORS)

其中一个CORS代理是,但在写这篇文章的时候,它被记录下来了。如果您只需创建自己的代理,它可能会更稳定



tl;dr:
testsite.test
应在其响应上发送标题。您不应该发送请求的标题。

CORS标题需要放在服务器返回的响应上,而不是放在您的请求上。如果响应中没有CORS头,则应将其添加到服务器端。如果您无法控制服务器来添加这些头,那么您就无法从JS发出请求。您需要在服务器端执行此操作。您发送的这些头文件实际上可能会导致CORS问题。