此问题在此处已有答案:
XMLHttpRequest cannot load XXX No 'Access-Control-Allow-Origin' header(11个回答)
6年前关闭。
我想调用一个API来发布闲置的JSON:
"user": {
"username": "username",
"password": "pass",
"password_confirmation": "passconfirm",
"user_type": "admin"
},
"profile": {
"first_name": "firstname",
"last_name": "lastname"
}
字符串
它在Postman,Android和Python上运行得很好,但不幸的是,当我用以下代码测试JavaScript时:
function sendData() {
/*
get json value from HTML form.
*/
var firstname = document.forms["registerForm"]["first_name"].value;
var lastname = document.forms["registerForm"]["last_name"].value;
var pass = document.forms["registerForm"]["password"].value;
var passconfirm = document.forms["registerForm"]["password_confirmation"].value;
var username = document.forms["registerForm"]["username"].value;
var json_date = {
"user": {
"username": username,
"password": pass,
"password_confirmation": passconfirm,
"user_type": "admin"
},
"profile": {
"first_name": firstname,
"last_name": lastname
}
};
var data = JSON.stringify(json_date);
console.log(json_date);
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === 4) {
console.log(this.responseText);
}
});
xhr.open("POST", send);
xhr.setRequestHeader("content-type", "application/json");
xhr.send(data);
}
型
我得到这个错误:
原因:缺少CORS hejquery“控制-允许-来源"
我用console.log()
打印JSON文件,然后我看到了我的JSON文件,但没有发送到服务器。
我也试过jQuery。
我必须补充一点,那个服务器是用RubyOnRails写的。
1条答案
按热度按时间gmxoilav1#
CORS(Cross-Origin Resource Sharing)
跨域资源共享(CORS)是一种机制,它使用额外的HTTP头来让用户代理获得从与当前使用的站点不同的源(域)上的服务器访问选定资源的权限。
例如,如果你想从
http://bar.com
发送请求,获取存储在http://foo.com
上的资源,你应该在响应中添加Access-Control-Allow-Origin: *
头。来源:Server-Side Access Control (CORS)和Cross-Origin Resource Sharing (CORS)