2012-04-18 75 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查詢你的代碼,你會得到可靠的迴應