2011-07-25 92 views
2

我正在對某個url進行ajax請求。但每次我都會收到錯誤狀態。通過ajax請求請求URL的問題

$.ajax({ 
    url: "http://api.jquery.com/jQuery.ajax/", 
    type: 'GET', 
    complete: function(jqXHR,textStatus) { 

         alert(textStatus); 

     } 
    }) 

每次我在textStatus中得到「錯誤」。我做錯了什麼。

EDIT: 

ckeck它http://jsfiddle.net/bhXbh/54/

+0

這是因爲您正在請求不同域中的頁面 – Ibu

回答

2

你試圖做一個跨域Ajax調用,這是由瀏覽器的Same Origin Policy.

禁止假設你的遠程URL允許JSONP requests,假設你使用JQuery> 1.5,您可以簡單地將crossDomain:true添加到您的$.ajax()參數中。

+0

AlienWebguy:請看http://jsfiddle.net/bhXbh/57/ – Romi

+0

是的,您是試圖獲取不是JSON的'http:// api.jquery.com/jQuery.ajax /'。 JSONP通過在回調函數中包裝JSON響應來工作。當你獲取url時,你承認回調參數,所以瀏覽器認爲你只是包含一個外部函數。雅虎幾年前才發現這項技術。 – AlienWebguy

+0

將此url工作url:solrURL +「/ solr/db/select /?qt = dismax&wt = json && start =」+ start +「&rows =」+ end +「&q =」+ query +「&json.wrf =?」 – Romi

0

你可以看看以下(參考:http://api.jquery.com/jQuery.ajax/

xhrFields(加1.5.1)地圖

字段名-fieldValue方法對的映射到本地XHR對象上設置。例如,如果需要,您可以使用它將withCredentials設置爲true來處理跨域請求。

$.ajax({ 
    url: 'a_cross_domain_url', 
    xhrFields: { 
     withCredentials: true 
    } 
}); 

跨域(增加1.5)

默認值:假的同域的請求,真跨域請求

如果要強制跨域請求(如JSONP)在同一個域上,將crossDomain的值設置爲true。這允許,例如,服務器端重定向到另一個域