在 React Native 中使用 axios 通过带参数的 GET 方法获取 HTTP 响应
2016-12-27
1665
我认为这可能是一个非常简单的问题,但我对 Web 请求很陌生,无法使其正常工作,也无法在 Web 上搜索到简单的响应
我有一个网站,可以通过将此 URL 放入浏览器中获取 JSON 响应:
http://www.test.com/callservice.php?action=stop&x=1&y=2&ct=100
这反过来又给了我一些 JSON 响应。
现在,我尝试使用 Axios 在 Javascript 中获得相同的结果。
直接使用 URL
componentWillMount() {
axios.get('http://www.test.com/callservice.php?action=stop&x=1&y=2&ct=100')
.then(response => console.log(response));
}
或者使用 GET 参数:
componentWillMount() {
axios.get('http://www.test.com/callservice.php', {
params: {
action: 'stop',
x: 1,
y: 2,
ct=100
}
})
.then(response => console.log(response));
}
但两种方法都给出了相同的错误:
Possible Unhandled Promise Rejection (id: 0):
Network Error
Error: Network Error
以及来自捕获:
Error: Network Error
at createError (createError.js:15)
at XMLHttpRequest.handleError (xhr.js:87)
at XMLHttpRequest.dispatchEvent (event-target.js:172)
at XMLHttpRequest.setReadyState (XMLHttpRequest.js:542)
at XMLHttpRequest.__didCompleteResponse (XMLHttpRequest.js:378)
at XMLHttpRequest.js:482
at RCTDeviceEventEmitter.emit (EventEmitter.js:181)
at MessageQueue.__callFunction (MessageQueue.js:236)
at MessageQueue.js:108
at guard (MessageQueue.js:46)
2个回答
jbssm, 看来您正在使用 IOS。您可以使用 Xcode 检查项目设置中的应用传输安全设置。
Xcode 禁用 http 连接,因为默认仅允许安全连接。 您应该将“允许任意加载”添加到项目设置中
Tolga Cagin
2017-01-05
这似乎是 CORS 问题。
如果您是脚本的所有者(在服务器上),则可以添加适当的响应标头来处理此问题。在 PHP 中将是这样的:
<?php
header("Access-Control-Allow-Origin: *");
出于测试目的(或者如果您无权访问服务器),您可以安装 chrome 扩展程序 ,以禁用跨域限制。
Diogo Sgrillo
2016-12-27