簡體   English   中英

使用jquery從javascript到php進行AJAX調用

[英]making AJAX calls from javascript to php using jquery

作品:

    function jsUpvote(photo_id, username) {

        //var getURL = "http://www.uglyfacez.com/gallery/upvote.php?photo_id=" + photo_id + "&username=" + username;

        $.get("http://uglyfacez.com/gallery/upvote.php?photo_id=15&username=user000",
            function(returnValue){
                // do stuff here
        });
    }

我編寫了上面的函數,以在頁面上運行php腳本,並通過URL將變量photo_id和username傳遞給腳本。 當我硬編碼時,如上所述,它工作得很好,但是當我給它javascript變量時(正如你在getURL中看到的那樣),它根本不起作用。 例如,這是我想要做的,但是不起作用:

$.get("http://www.uglyfacez.com/gallery/upvote.php?photo_id=" + photo_id + "&username=" + username,
            function(returnValue){
                // do stuff here
        });

為什么這不起作用,解決方案是什么?

編輯:我發現了問題所在。 出於某種原因,在我的GET url中包含www使其無法接收來自服務器的響應。 從網址中刪除后,它就可以正常工作。

這似乎是有關跨域請求的問題。

您可以使用JSONP之類的解決方案,也可以從其他域(在本例中為www子域)加載腳本 要查看有關跨域的不同方面和設置,請轉到.ajax()文檔頁面 (並搜索“ 跨域 ”或“ crossDomain ”)。

這個問題基本上是與同一原產地政策有關的問題。 提到的文檔頁面上,您可以閱讀:

  • 由於瀏覽器安全性的限制,大多數“ Ajax”請求都受相同的原始策略約束; 請求無法從其他域,子域或協議成功檢索數據。
  • 腳本和JSONP請求不受相同的源策略限制。

這是jquery .get函數的sysntax:

jQuery.get(url [,data] [,success(data,textStatus,jqXHR)] [,dataType])

就像是:

$.get("http://www.uglyfacez.com/gallery/upvote.php", {'photo_id':photo_id,'username':username},
            function(returnValue){
                // do stuff here
        });

嘗試按照語法首先將數據放在函數的參數上,我認為這個鏈接也可能對你有所幫助:

http://api.jquery.com/jQuery.get/

或者,如果仍然遇到相同的問題,請嘗試再次在瀏覽器上手動打開鏈接,並檢查鏈接是否返回任何錯誤,以確保它返回了預期的輸出。 :)

您是否正確設置了photo_id和用戶名? 更多代碼可能會有所幫助。 什么是錯誤消息? 您使用Firebug或Chrome來查看是否收到錯誤? 好像photo_id和/或用戶名沒有正確傳遞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM