h4k*_*0rd 11 ajax jquery android cross-domain cordova
跨域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);
}
});
Run Code Online (Sandbox Code Playgroud)
解决此问题的步骤:
<access origin="http://domain.com/public/auth/app-login" />
<access origin="*" />
$.support.cors = true;
要么
jQuery.support.cors = true;
cache: false任何帮助表示赞赏.
好.如果index.html在本地,那么您可以调用任何主机的ajax,而不需要在客户端或服务器中启用CORS.你删除:
$.support.cors = true; OR jQuery.support.cors = true;
Run Code Online (Sandbox Code Playgroud)
和:
<access origin="http://domain.com/public/auth/app-login" />
Run Code Online (Sandbox Code Playgroud)
它多余,只使用:
<access origin="*" />
Run Code Online (Sandbox Code Playgroud)
您需要检查并添加AndroidManifest.xml:
<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)
如果您的应用需要,请添加更多权限 最后,在$(document).ready()中调用ajax:
$.ajax({
type: "POST",
url: "http://domain.com/public/auth/app-login",
dataType: "json",
data: {identity: <username from form>, password: <password from form>},
success: function(data) {
obj = JSON.parse(data);
if (obj && obj.success === true) {
window.location.href = 'home.html';
}
},
error: function(e) {
alert('Error: ' + e.message);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
49537 次 |
| 最近记录: |