我已经将我的phonegap项目复制到了类固醇,但现在我的ajax命令无法正常工作,我根本不知道是什么导致了它,所以任何建议都可能有用。
这是导致问题的代码,它始终与request.status = 0错误:
$.ajax({
type: "POST",
url: serverUrl + "login.ajax",
data: { jsonLogin: JSON.stringify(loginObject), deviceInfo: JSON.stringify(deviceInfo)},
async: true,
timeout: 7000,
cache: false,
headers: { "cache-control": "no-cache" },
success: function(data) {
...
},
error: function(request, status, err) {
...
},
complete: function(){...}
});
答案 0 :(得分:1)
AppGyver员工在这里!
在config/application.coffee
中,您的steroids.config.location = "http://localhost/index.html"
还是index.html
?类固醇通过localhost(即手机上的内部Web服务器)提供app文件,而PhoneGap使用File协议。使用localhost使WebView强制执行更严格的CORS规则,因此您需要Access-Control-Allow-Origin
标头来响应服务器响应。通过文件协议提供的HTML文件允许跨域请求在没有CORS标头的情况下通过。
答案 1 :(得分:0)
我认为jQuery不会解析json数据,因为你没有指定dataType
$.ajax({
type: "POST",
url: serverUrl + "login.ajax",
data: { jsonLogin: JSON.stringify(loginObject), deviceInfo: JSON.stringify(deviceInfo)},
dataType: json, //Specify data type
async: true,
timeout: 7000,
cache: false,
headers: { "cache-control": "no-cache" },
success: function(data) {
...
},
error: function(request, status, err) {
...
},
complete: function(){...}
});