2013-11-21 166 views
0

我試圖朝着火在同一臺機器不同的端口使用jQuery一個CORS Ajax請求,下面是我的代碼(我的應用程序是一個appache服務器上運行的端口80):jQuery的CORS Ajax請求失敗

JS:

$(function(){ 
    jQuery.support.cors = true; 
    $.ajax({ 
     type: "POST", 
     url: "http://127.0.0.1:8080/sys_monitor/ccn", 
     dataType: "text", 
     contentType: "text/plain", 
     data : {a: '11'}, 
     success : function(res){ 
      alert(res); 
      $('#stage').html(res); 
     }, 
     error : function(jqXHR, text, exception){ 
      if (jqXHR.status === 0) { 
       alert ('Not connected.\nPlease verify your network connection.'); 
      } else if (jqXHR.status == 404) { 
       alert ('The requested page not found. [404]'); 
      } else if (jqXHR.status == 500) { 
       alert ('Internal Server Error [500].'); 
      } else if (exception === 'parsererror') { 
       alert ('Requested JSON parse failed.'); 
      } else if (exception === 'timeout') { 
       alert ('Time out error.'); 
      } else if (exception === 'abort') { 
       alert ('Ajax request aborted.'); 
      } else { 
       alert ('Uncaught Error.\n' + jqXHR.responseText); 
      } 
     } 
    }); 
     }); 

的Servlet( 「後」 被寫入到控制檯)在端口8080上的Tomcat(蝕)運行:使用螢火我可以看到請求(響應代碼200

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    response.getWriter().write("hello there"); 
    System.out.println("post"); 
} 

)和內容長度11(空的結果標籤),但是誤差函數被與XHR狀態執行0

(側問題1:爲什麼螢火顯示「XML」類型):

(側問題2:爲什麼ISN」牛逼那裏的POST之前OPTIONS請求):

firebug

我也試圖與RESTClient實現插件的Firefox和我得到了想要的結果:

RESTClient plugin

所有幫助/提示是歡迎

+1

所以瀏覽器的問題,你居然能CORS? –

+0

我們該怎麼做?我認爲這行** jQuery.support.cors = true; **會這樣做 – Rima

+0

在Chrome上運行時,您是否獲得相同的行爲,XHR對象需要讀取HTTP狀態響應才能返回正確的(狀態)碼。 我懷疑這種情況發生時,你在本地機器上 – elsadek

回答