eBay API HTTP请求通过cURL工作,但不能通过javascript工作

时间:2017-05-21 16:22:42

标签: javascript api http curl

所以,我正在尝试使用eBay API。我应该提一下,从一开始我就遇到了跨源请求的问题,但是我得到了一个CORS chrome add,它应该禁用它,并且对于获取用户身份验证令牌的初始请求工作正常。我根本不知道后端编程,但我听说你可以使用代理来处理CORS问题。我尝试下载了一些不同的代理脚本,但似乎都没有正确发送标题。

当我使用cURL发出请求时,一切正常。但是当我尝试使用xmlhttprequest在javascript中发出相同的请求时,它会一直告诉我它缺少授权标题,当我清楚地设置它们时。任何人都知道为什么它可能会说缺少授权标题?

这是我正在尝试使用的xmlhttprequest:

var xhr2 = new XMLHttpRequest();
xhr2.onreadystatechange = function() {
    if(xhr2.readyState === 4) {
        console.log(xhr2.responseText);
    }
}
xhr2.open('PUT', 'https://api.sandbox.ebay.com/sell/inventory/v1/inventory_item/testingItemSKU1234');
xhr2.setRequestHeader('Authorization', 'Bearer <token>');
xhr2.setRequestHeader('Content-Language', 'en-US');
xhr2.setRequestHeader("Content-Type", "application/json");
var reqBody2 = "request body info";
xhr2.send(reqBody2);

编辑:

以下是回复

    {
  "errors" : [ {
    "errorId" : 1002,
    "domain" : "OAuth",
    "category" : "REQUEST",
    "message" : "Missing access token",
    "longMessage" : "Access token is missing in the Authorization HTTP request header."
  } ]
}

这是有效的cURL命令:

curl.exe -X PUT "https://api.sandbox.ebay.com/sell/inventory/v1/inventory_item/testitemSKU1234"
-H "Content-Language: en-US" -H "Content-Type:application/json" 
-H "Authorization: Bearer <token>" -d "request body"

0 个答案:

没有答案