2013-06-05 81 views
3

我無法從ajax獲得響應。請指導我如何解決這個錯誤,我從服務器成功的數據返回我已經檢查它在小提琴web調試器仍然ajax顯示錯誤。 XML解析錯誤:沒有的元素中找到位置:MOZ-nullprincipal:{6b0a1ac2-50ab-4053-9f71-8ae49202288d} 1號線,1列:ajax響應錯誤(XML解析錯誤:找不到元素位置:moz-nullprincipal)

  $j.ajax({ 

      type:"POST", 
      url:'http://www.w3schools.com/webservices/tempconvert.asmx/CelsiusToFahrenheit', 
      data: 'Celsius=12', 
      crossDomain:true, 
      async: false, 
      success:function(response) 
      { 
       alert("Success Full Done"+response.string); 
      }, 
      beforeSend: function(xhr) { 
xhr.overrideMimeType('text/plain; charset=UTF-8'); 
} 

     }); 
+0

檢查此鏈接:http://tharindumathew.com/2012/05/16/xml-parsing-error-in-firebug/ –

+0

鏈接現在在:http://mackiemathew.wordpress.com/2012/ 05/16/xml-parsing-error-in-firebug/ –

回答

2

我有這個問題與要求:在請求

$.ajax({ 
    type: "POST", 
    url: ajaxUrl, 
    dataType : "json", 
    contentType: "application/json", 
    data: JSON.stringify(data), 
    success: function (data) { 
     ... 
    } 
}); 

Accept報頭是:

Accept application/json, text/javascript, */*; q=0.01 

響應狀態爲2 00,但瀏覽器檢測到錯誤,並沒有所謂的

成功回調被刪除的dataType修正: 「JSON」:

$.ajax({ 
    type: "POST", 
    url: ajaxUrl, 
    contentType: "application/json", 
    ... 

,在請求接受頭部唯一的區別改爲:

Accept */* 

但現在稱爲成功回調。

1

我在調用GETXMLHttpRequest時遇到了同樣的問題。

var req = new XMLHttpRequest(); 
req.open('GET', '/exampleServlet', false); 
req.send(null); 

它通過在HttpServletResponse上設置ContentType來解決。

response.setContentType("text/plain"); 
+0

你是對的,我是從servlet中完成的,它工作正常。 –

0

將「beforeSend」函數添加到您的AJAX調用中以覆蓋可接受的響應MIME類型。

參考jQuery.ajax()文檔: http://api.jquery.com/jquery.ajax/

在jQuery 1.5.1中,jqXHR對象還包含overrideMimeType()方法(它是在jQuery的1.4.x的可用的,以及,但在jQuery 1.5中暫時被刪除)。所述.overrideMimeType()方法可以在beforeSend()回調函數一起使用,例如,修改響應的內容類型報頭:

$.ajax({ 
    url: "http://fiddle.jshell.net/favicon.png", 
    beforeSend: function(xhr) { 
    xhr.overrideMimeType("text/plain; charset=x-user-defined"); 
    } 
}) 
    .done(function(data) { 
    if (console && console.log) { 
     console.log("Sample of data:", data.slice(0, 100)); 
    } 
    }); 

和:

數據類型

對$ .ajax()調用的不同類型的響應在傳遞給成功處理程序之前會受到不同類型的預處理。預處理的類型默認取決於響應的內容類型,但可以使用dataType選項顯式設置。如果提供了dataType選項,則會忽略響應的Content-Type標頭。

相關問題