Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Post请求作为节点脚本工作,但不在本地主机上_Node.js_Reactjs_Rest_React Native_Post - Fatal编程技术网

Node.js Post请求作为节点脚本工作,但不在本地主机上

Node.js Post请求作为节点脚本工作,但不在本地主机上,node.js,reactjs,rest,react-native,post,Node.js,Reactjs,Rest,React Native,Post,我向JIRA提出了一个发布请求: require('isomorphic-fetch'); process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; var summ = "Review Test Ticket"; var issue = { "fields": { "project": { "key": "ABC" }, "summary": summ, "d

我向JIRA提出了一个发布请求:

require('isomorphic-fetch');
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
var summ = "Review Test Ticket";
var issue = {
    "fields": {
       "project":
       {
          "key": "ABC"
       },
       "summary": summ,
       "description": "This is a test JIRA issue creation",
       "issuetype": {
          "name": "Story"
       },
       "assignee": {
           "name": "myname"
       },
       "customfield_10902": [{ "value": "Red Team" }],
       "customfield_10008": 1
   }
};

var missue = JSON.stringify(issue)
fetch("https://my_jira_host/jira/rest/api/2/issue/", {
    body: missue,
    headers: {
        "Authorization": "Basic my_auth_token",
        "Content-Type": "application/json"
    },
    method: "POST"
})
.then(function( data ) {
    console.log(data);
}).catch(function(data) {
    alert(data);
});
如果上面的代码位于名为“my_file.js”的文件中,如果我运行
节点my_file.js
则成功创建了票证。 但是,如果我在react应用程序中的button click上运行的函数中移动该代码,然后运行该应用程序(在本地主机或服务器上),则该应用程序将失败。我有一个403。“我的捕获”中显示的警报是:
TypeError:NetworkError,在尝试获取资源时。


我什么都试过了。我不知道从这里到哪里去。有什么想法吗?

403表示你被禁止。从react应用程序运行时,是否可能未正确传递身份验证令牌?如果您确定auth令牌存在且正确,并且从控制台运行时它似乎正常工作,那么JIRA服务器可能存在CORS问题(尽管这通常不会返回403)。代码完全相同,请复制粘贴。所以我可以肯定地知道auth令牌是相同的。您正在从https运行此代码的react应用程序也是相同的吗?由于它在控制台而不是浏览器中工作,因此听起来像是浏览器安全问题。同样,可能是CORS,从HTTP站点调用HTTPS,或者其他一些浏览器限制。您是否尝试过在JSFIDLE中运行它以排除任何网络问题?当您运行相同的代码时,它在浏览器中不起作用,但在node.js中确实起作用?仅“内容类型”:“应用程序/json”将使此成为CORS请求,如果您在本地主机上使用带有自签名证书的chrome,则根本不起作用。您应该能够在chrome开发者控制台中看到所有这些。对于后者,您可以使用chrome://flags/#allow-unsecure-localhost。这可能是OAuth错误。从脚本运行时,Jira可以使用基本身份验证,但从服务器运行时,我认为它需要OAuth身份验证。我将在成功实现OAuth后再联系并确认(如果它有效的话)