2016-11-30 82 views
-1

React JSX项目。 我试图执行等待获取GET请求的参数数量,失败Uncaught SyntaxError: Unexpected identifier错误。 在邮递员执行相同的请求时,它工作正常。Javascript等待GET请求获取参数数量

我有一些语法问题。我究竟做错了什么?

首先,我将uri初始化为一些适当的值。

其次,我准备了GET选项:

var options = (payload) => { 
    return { 
    method: 'GET', 
    headers: { 
     Accept: 'application/json', 
     'Content-Type': 'application/json' 
    }, 
    param: JSON.stringify(payload) //payload is {domainName: "idoidoido.info"} 
    }; 
}; 

然后,等待获取:

const response = await fetch(uri, options(param)); 

而且,它失败Uncaught SyntaxError: Unexpected identifier错误...

回答

0

成功解决了这个问题。看起来像查询参数不能是获取GET请求的一部分。

通过事先准备好请求URL URI.js来解决这个问题。

所以,选项:

const options =() => { 
    return { 
    method: 'GET', 
    headers: { 
     Accept: 'application/json', 
     'Content-Type': 'application/json' 
    }, 
    credentials: 'same-origin' 
    }; 
}; 

然后,等待获取:

const URI = require('urijs'); 

    const request = new URI(uri).addSearch(params).toString(); 
    const response = await fetch(uri, options()); 

addSearch(params)追加PARAMS很好的网址:

URI("?hello=world") 
    .addSearch("hello", "mars") 
     // -> ?hello=world&hello=mars 
    .addSearch({ foo: ["bar", "baz"] }) 
     // -> ?hello=world&hello=mars&foo=bar&foo=baz 
0

嗯,首先总之,我希望你使用像BabelJS这样的转译器,否则这将会失败,就像目前99%的所有目标。

你的代码看起来不错。由于fetch返回一个承诺,await可以处理它。但是您必须确保您的await声明始终位于async function声明内。否则就会发生错误。

因此,请确保您的电话线有像

async function getData(uri, options) { 
    const response = await fetch(uri, options); 
} 
+0

感谢,这正是我之后做的没有帮助。看起来像'参数'不能作为选项的一部分传递。 – Stas

1

我假设的fetch第二个参数需要一个对象,但你options是一个函数,它必须与有效载荷称为结构,所以我认为你的代码应该是

const response = await fetch(uri, options(somePayload)); 
+0

谢谢,有效载荷在那里。只是忘了写在这里:) – Stas