我认为这可能是一个非常简单的问题,但我是Web请求的新手,可以使其工作,也不会在网络上获得简单的响应
我有一个网站,我可以通过将此网址放入浏览器来获取JSON响应:http://www.test.com/callservice.php?action=stop&x=1&y=2&ct=100
这反过来给了我一些JSON响应。
现在,我正在尝试使用Axios在Javascript中使用相同的内容。
直接使用网址
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)
答案 0 :(得分:1)
jbssm, 看来你正在研究IOS。您可以使用Xcode检查项目设置中的应用传输安全设置吗。
Xcode禁用http连接,默认情况下只允许安全连接。 你应该添加"允许仲裁负载"到您的项目设置
答案 1 :(得分:0)
这似乎是CORS问题。
如果您是脚本的所有者(在服务器上),则可以添加适当的响应标头以处理此问题。在PHP中会是这样的:
<?php
header("Access-Control-Allow-Origin: *");
出于测试目的(或者如果您无权访问服务器),可以安装chrome extension来禁用跨域限制。