2011-03-03 21 views
5

我面臨一個問題來獲取返回值(content-type:「text/xml」)。我可以通過直接訪問獲得的返回值這個網址:通過jQuery傳遞XML的不同方法AJAX

https://[domain_name]/myfolder/myapi/?xml=<xml version='1.0'><MyTasks><Search></Search></MyTasks>

請幫我糾正這些替代品,如果它是錯誤的(稱爲位於MyFolder HTML),因爲它時刻警惕「失敗」。

$.ajax({ 
    type  : "GET", 
    url  : "interface/?xml=<xml version='1.0'><MyTasks><Search></Search></MyTasks>", 
    dataType : "text/xml", 
    success : function(msg){ 
     alert('Success'); 
    } 
    error : function(msg) { 
     alert('Failed'); 
    } 
}); 

或...

$.ajax({ 
    type  : "POST", 
    url  : "interface/", 
    data  : { xml: escape("<MyTasks><Search></Search></MyTasks>") }, 
    dataType : "text/xml", 
    success : function(msg){ 
     alert('Success'); 
    } 
    error : function(msg) { 
     alert('Failed'); 
    } 
}); 

謝謝。

SOLUTION

的接口必須由https訪問,所以我改變url參數去絕對URL。我還必須使用"xml"而不是"text/xml"作爲其dataType。結果成功了,謝謝。

+0

的XML是在URI? – iivel 2011-03-03 04:14:59

+0

你是否得到'alert('failed');'?並嘗試'dataType:'xml'' – Rafay 2011-03-03 04:18:07

+0

@ 3nigma是的,我試圖使用'xml',它保持警報'失敗'。 – 2011-03-03 04:56:58

回答

3

爲了簡化,我會做以下

讓我們假設你正在使用所謂的script.php PHP腳本。

var xml_string = "<xml version='1.0'><MyTasks><Search></Search></MyTasks>"; 

$.get('script.php', {xml: xml_string}, function(){ //your success function 
    alert('success'); 
}).error(function(){ //your error function 
    alert("error"); 
}); 
4

這是否採取所有..從你的例子帖子,它看起來像其設置爲獲取.. 試試這個:

$.ajax({  
    type  : "GET", 
    url  : "http://blachblahblah.com/abc.html", 
    dataType : "text/xml", 
    data  : { xml : escape("<xml version='1.0'><MyTasks><Search></Search></MyTasks>") }, 
    success : function(msg){ alert('Success'); } , 
    error : function(msg) { alert('Failed'); } 
}); 
1

我不明白爲什麼你用具體的數據類型?

你想要什麼/需要的是contentType。

從api.jquery.com:

的數據類型(默認:智能猜測(XML,JSON,腳本或HTML)) 類型:String 的類型,你從服務器期待回數據。如果沒有指定,jQuery將嘗試根據響應的MIME類型推斷它.........

contentType(默認值:'application/x-www-form-urlencoded; charset = UTF -8') 類型:字符串 將數據發送到服務器時,請使用此內容類型。默認是「application/x-www-form-urlencoded; charset = UTF-8」,這對大多數情況來說都很好。如果你明確地傳遞的內容類型,以$阿賈克斯().............

希望這可以幫助