簡體   English   中英

為什么jQuery.get()更改我的URL?

[英]Why is jQuery.get() changing my URL?

我有下面的代碼,我只是通過Ajax jQuery調用獲取資源。

 $.get({
            url: "http://jennifer-lawrence/mygirl/FreeTonight.php",
            type: "GET",
            dataType: "json",
            success: function(b) {
                a(b, b.signature)
            }
        })

當我觸發此操作時,它失敗了,當我在Chrome開發者工具的“網絡”標簽中查看時,我看到請求正在發送。

 http://jennifer-lawrence/mygirl/[object%20Object]

服務器當然會返回404。

但是,如果我將上面代碼中的“ $ .get”更改為“ $ .ajax”,則可以正常工作。

那是怎么回事??

查看文檔: https : //api.jquery.com/jquery.get/

$.get不能采用與$.ajax相同的方式獲取對象。 可能是因為它是快速寫$.get(url)的捷徑。

根據文檔,您的代碼應為:

 $.get("http://jennifer-lawrence/mygirl/FreeTonight.php", Null,
        function(b) {
            a(b, b.signature)
        }
,'json');

或者只是將$.get更改$.get $.ajax ,問題就解決了。

其實

您可以將對象傳遞給版本大於$.get 1.12和大於$.get 2.2的$.get 因此,如果將jQuery版本更新為其中之一,您的示例將起作用。 但是type: 'GET'是完全多余的。

當獲取一個普通對象,將其轉換為字符串,然后對其進行URL編碼時,會得到[object%20Object]

http://jennifer-lawrence/mygirl/[object%20Object]看起來像您在http://jennifer-lawrence/mygirl/ ,然后嘗試訪問相對URI [object%20Object]

如果您通過{ some: object } ,就好像是URL的字符串表示形式,就會得到此信息。


現在查看文檔 您可以通過兩種方式調用get

jQuery.get( url [, data ] [, success ] [, dataType ] )版本1.0

jQuery.get( [settings ] )版本:1.12 / 2.2

您正在使用第二種方法,但是它的行為就像您在使用第一種方法一樣。

您必須使用的版本的jQuery不支持第二種方法。

使用第一種方法或升級jQuery。

暫無
暫無

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

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