跨域 AJAX POST 请求在 Web 浏览器(包括手机浏览器)上运行良好,但不适用于使用构建的本机应用程序Phonegap
我创建了一个登录表单,用户必须输入他们的登录凭据,然后由托管在 heroku 上的服务器进行验证,{"success":true}
如果输入了有效的凭据,则返回 json。
我的 Ajax 脚本:
$.ajax({
type: "POST",
url: "http://domain.com/public/auth/app-login",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
dataType: "json",
data: {identity: <username from form>, password: <password from form>},
crossDomain: true,
cache: false,
success: function(data) {
obj = JSON.parse(data);
if (obj && obj.success === true) {
window.location.href = 'home.html';
}
},
error: function(e) {
alert('Error: ' + e.message);
}
});
为解决此问题而采取的步骤:
- 域白名单- config.xml
<access origin="http://domain.com/public/auth/app-login" />
<access origin="*" />
- 告诉 jQuery 允许跨域
$.support.cors = true;
或者
jQuery.support.cors = true;
- 禁用缓存
cache: false
任何帮助表示赞赏。