2013-10-25 73 views
-1

我試圖從mysql中檢索數據。我只想做一個簡單的測試。Jquery回調函數在post中無法執行

JS代碼

$(document).ready(function(){ 
    $("button").click(function(){ 
    $.post("http://anonymous.comze.com/default.php", 
    function(data){ 
     alert(data); 
    }); 
}); 
}); 
<? 
    echo 'hello'; 
?> 

爲什麼回調函數不起作用?

+0

此代碼是否也在'http:// anonymous.comze.com'上運行?你看到你的控制檯有任何錯誤嗎? –

回答

0

除非您的網站在anonymous.comze.com上運行,否則您的問題是瀏覽器執行相同原產地政策。具體而言,您不能向除您提供頁面服務的域以外的其他域調用AJAX調用(即.post()正在執行的調用)。這個問題有很多解決方法,包括對JSONP使用$ .ajax函數,或者不使用AJAX請求。這裏的一些想法:

Ways to circumvent the same-origin policy

如果你只是測試,不過,可能是最簡單的方式得到它的工作是以前使用Chrome和禁用安全設置(當然,重新啓動瀏覽器沒有這個標誌做任何真正的瀏覽 - 也請注意,這個標誌被標記爲不受支持,所以它可能會從未來版本的Chrome中消失)。你必須使用類似的命令行啓動它(這是針對OSX終端):

open Google\ Chrome.app --args --disable-web-security 

對於PC,你應該能夠只需打開一個命令窗口,瀏覽到您的Chrome目錄下的程序文件,然後使用:

chrome.exe --args --disable-web-security 

一旦瀏覽器窗口中打開你會得到一個警告,但同源策略會爲瀏覽器窗口打開的持續時間被禁用。