【发布时间】:2017-05-05 23:51:55
【问题描述】:
我在处理 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 标头需要放在服务器返回的 response 中,而不是您的请求中。如果 CORS 标头不在响应中,那么您应该在服务器端添加它们。如果您无法控制服务器以添加这些标头,则您无法从 JS 发出请求。您需要在服务器端进行。
-
您发送的那些标头实际上会导致 CORS 问题。
标签: javascript jquery ajax cors cross-domain