【发布时间】:2017-04-29 01:00:21
【问题描述】:
我有带有 access origin * 和 HTTP API(通过 POST 发送数据)的 Cordova 应用程序 (Cordova 6.0.0),其中 header Access-Control-Allow-Origin 设置为 *。 API 在域 https://api.stude.cz 上运行,因此您可以检查它(是的,我正在从应用程序调用 https)。好吧,当我尝试从应用程序中使用 jQuery 同步 AJAX 调用 api 时,我得到了
{
"readyState":0,
"status":0,
"statusText":"Error: NETWORK_ERR: XMLHttpRequest Exception 101"
}
它是 JSON 字符串化的,因为 Android Studio 不支持在控制台中显示数组。你知道为什么吗?我花了很多时间在这个...
我的要求:
function apiRequest(type, action, params) {
var returnValue = false;
console.log('started');
$.ajax({
url: 'https://api.stude.cz/' + type + '/' + action,
type: 'post',
async: false,
crossDomain: true,
data: params,
success: function(data){
returnValue = data;
},
error: function(data){
console.log(JSON.stringify(data));
returnValue = JSON.stringify({status:"error"});
}
});
return(returnValue);
}
我测试过:
type = user
action = login
params = {email: -some email-, password: -some password-}
【问题讨论】:
-
您需要提供有关您正在做什么以及发生了什么的更多信息。确切地说,请求是什么样的?它是 POST 请求还是预检 OPTIONS 请求?您使用的是什么内容类型?等等。确切地说,响应是什么样的?服务器向客户端发回什么状态?
-
@Quetin 我会在一分钟内添加它。 :)
-
另外请添加您正在使用的 Cordova 版本(cordova --version 会告诉您),因为如果您使用的是版本 5 或更高版本,您可能会遇到内容安全策略问题。
-
@SimonPrickett 好的,我添加了它,对你来说,我使用的是 6.0.0(最新)。
标签: javascript jquery ajax cordova cross-domain