【问题标题】:Ajax request equivalent to curl command相当于 curl 命令的 Ajax 请求
【发布时间】:2016-09-24 23:19:14
【问题描述】:

这是我的后端工程师给出的 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 Refused to set unsafe header "Origin" 等错误。

【问题讨论】:

    标签: jquery ajax curl reactjs


    【解决方案1】:

    在网络浏览器中使用 JavaScript,您无法执行与使用 cURL 手动执行的请求相同的请求。这是因为安全法规。其中一个是您无法设置 Origin 标头。浏览器强制 Origin 标头是真正的“来源”。另见:Chrome Extension: how to change origin in AJAX request header?

    因此,如果不设置 Origin 标头,请尝试它是否按预期工作。

    【讨论】:

    • 你是对的。我无法设置 ajax 请求标头。我发现我的电话有什么问题。我传递了错误的请求标头(用户名、密码)。一旦我删除它,它就开始工作了。感谢您的回复。
    猜你喜欢
    • 1970-01-01
    • 2016-05-20
    • 2014-02-02
    • 2019-07-07
    • 2021-07-05
    • 2012-09-06
    • 1970-01-01
    • 2012-10-25
    • 1970-01-01
    相关资源
    最近更新 更多