2012-04-18 139 views
0

我的移动应用程序中可用的第一个操作是登录。表单调用JavaScript的:为什么我的移动网站不能发送AJAX请求?

$.post('http://www.website.com/m/users/login', ... 

我用一个包罗万象的Ajax错误:

$(document).ajaxError(ajaxError); 
function ajaxError() { 
    hideLoader(); 
    enableForm($('form:visible')); 
    alert('Uh oh! An error occurred. Please make sure you have an internet connection and try again.'); 
} 

这警报是我得到的,当我尝试登录

即使它。没有跨域(移动网站是在mobile.website.com),我曾尝试:

$.support.cors = true; 
$.mobile.allowCrossDomainPages = true; 

但它仍然是不W¯¯工作会有。在这一点上,我出于想法,所以我想我会看看是否有人知道任何其他可能的JQM Ajax请求的路障。

谢谢:)

+1

你是AJAX'ing www.website.com从www.website.com? – ppumkin 2012-04-18 18:20:07

+0

不,从'mobile.website.com'。 – Garrett 2012-04-18 18:24:12

+0

然后,你需要问MR www.website.com将你的网站添加到他允许标题,以允许跨域通信..否则忘记它..或JSONP喜欢提到.. – ppumkin 2012-04-18 19:11:43

回答

1

称为JSONP这种方式,您可以进行跨站点调用

+0

我要试试看看它是否有效:)谢谢! – Garrett 2012-04-18 18:34:53

1

您正在执行跨域请求,www.website.com是不是同一个域中mobile.website.com。您需要公开mobile.website.com域上的方法,使www.website.com支持CORS,或者在两者之间提供某种代理。

+0

不会''.support.cors = true; $ .mobile.allowCrossDomainPages = true;'做那个?如果不是,那么“揭露方法”是什么意思? – Garrett 2012-04-18 18:25:18

+1

通过公开这些方法,我的意思是让它们可以从mobile.website.com域中使用。 '$ .support'结构只不过是关于当前浏览器的信息,更改它的值不会改变您请求的服务器是否为CORS请求返回正确的标头。我不知道'$ .mobile.allowCrossDomainPages = true'。 – 2012-04-18 18:26:58

0

使用YQL也会让你做跨域AJAX尝试审查技术要求

使用YQL Console构建您的网址查询,并直接使用YQL查询你的代码,你会得到可靠的回应

相关问题