【发布时间】:2016-09-28 10:03:34
【问题描述】:
我已经开发了一个 Restfull 应用程序,我想添加另一个 Web 应用程序来使用它的服务,所以我进行了这个 Ajax 调用:
$.ajax({
type: "Post",
async: false,
url: "ip_adress/Inviter/api/Account/Register",
data: donne,
headers: { "Access-Control-Allow-Origin:": "*"},
success: function (data) {
console.log(data);
var tab = [];
tab["username"] = username;
tab["password"] = pwd;
var isLogged = Login.CheckCredential(tab, username);
return isLogged;
},
error: function (xhr, status, error) {
console.log(xhr);
console.log(status);
console.log(error);
}
});
我得到了这个例外:
Object {readyState: 0, status: 0, statusText: "SyntaxError: Failed to 执行 'setRequestHeader' ...-Origin:' 不是有效的 HTTP 标头 字段名称。”} 错误 DOMException:无法执行 'setRequestHeader' 关于 'XMLHttpRequest': 'Access-Control-Allow-Origin:' 不是有效的 HTTP 标头字段名称。
所以我需要知道:
在这种情况下如何启用 CORS?
如何修复我的代码?
【问题讨论】:
-
服务器需要设置标头,因为服务器决定谁可以访问以及从哪里访问。所以第一个问题的答案是:将标头添加到您的服务器。这应该会使您的第二个问题过时。
-
Access-Control-Allow-Origin是一个http响应头,由服务器返回。详情请见developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS。
标签: javascript jquery ajax rest http