2012-06-06 154 views
0

我試圖執行一個靜態javascript/jQuery腳本來測試我的ajax函數。這將是比如某處在我家目錄將包含一堆ajax請求我localhostajax請求拋出錯誤

function getSomethingAjax(){ 
    $.get('http://127.0.0.1:8888/getSomething',{} , function(json){  
     getSomethingCallback(json); 
    }, "json"); 
} 

我的螢火蟲給我這樣的錯誤: firebug screenshot http://img443.imageshack.us/img443/4934/tinygrabscreenshot06061.png 但是如果我手動打開的頁面(只鍵入瀏覽器:127.0.0.1:8888/getSomething)我得到匹配的返回。訪問網址有什麼區別?我請求ajax等待特定的返回值?

+0

嘗試刪除絕對網址getSomething並只使用/ getSomething。無論如何,跨域請求是不允許的。而且我也不認爲把變量命名爲「json」是個好主意,因爲它可能是一個受限制的關鍵字。該變量通常稱爲「數據」 – Cristy

+0

文件擴展名? 'getSomething.php'或'getSomething.asp'。 – Stefan

+0

這是一個調用PHP的codeigniter它實際上是像127.0.0.1:8888/ci/app/index.php/getSomething –

回答

0

發出Ajax請求和頁面請求的頁面必須位於同一個域中。

瀏覽器將阻止任何違反此操作的ajax請求。

只是一個建議: 我會建議使用服務器端語言來做測試。這將允許您調用應用程序,而不必將測試腳本保留在同一個域中。

+0

來自外地的應用程序調用將如何進行? –

+0

如果你使用Java,你可以使用HttpURLConnection來完成。在PHP中捲曲。 –

+0

似乎沒有問題 - 我嘗試了這篇文章的第一種方法(http://www.simple-talk.com/dotnet/asp.net/calling-cross-domain-web-services-in -ajax /) - 通過嘗試他的[url](http://twitter.com/users/usejquery.json?callback=?)沒有錯誤,但嘗試我的url拋出與以前相同的錯誤 –

0

也許您的返回地址與您的地址不符。 如果您使用127.0.0.1發送請求,則服務器返回本地主機將失敗。嘗試使用本地主機而不是IP?