[英]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.