这是我的后端工程师给出的curl命令。它在命令行中运行良好。我需要把它翻译成reactjs。我无法做到这一点,所以我试图用ajax做到这一点。
curl -v -H "Origin: http://example.com" -H "Access-Control-Request-Method: POST" -H "Access-Control-Request-Headers: X-Requested-With" -H "Authorization: ELS <your_token_here>" -X OPTIONS "localhost:9000/proj/user/token/<your_token_here>"
JS:
_login(username,password){
console.log(username+password)
$.ajax({
type: 'POST',
contentType:'application/json',
url: 'http://localhost:9000/proj/user/token',
beforeSend: function(xhr) {
xhr.setRequestHeader("Origin", "http://localhost:3000");
xhr.setRequestHeader("Access-Control-Request-Method", "POST");
xhr.setRequestHeader("Access-Control-Request-Headers", "X-Requested-With");
xhr.setRequestHeader("tokem", token);
}, success: function(data){
console.log(dtata);
}, error: function(e){
console.log(e);
}
})
}
我得到的错误就像jquery-2.2.4.min.js:4拒绝设置不安全的标题&#34; Origin&#34;等
答案 0 :(得分:0)
在Web浏览器中使用JavaScript,您无法执行与使用cURL手动执行相同的请求。这是因为安全规定。在他们身上是你不能设置Origin标头。浏览器强制Origin标头是真正的“起源”。另见:Chrome Extension: how to change origin in AJAX request header?
因此,如果没有设置Origin标头,请尝试按预期工作。