2015-06-04 272 views
0

我已經獲得訪問一個web服務的權限,該服務將以xml格式返回數據。我遇到了兩個錯誤之一:交叉原點域錯誤和現在這個新錯誤 - 拒絕執行腳本,因爲它的MIME類型('text/html')不可執行,並且啓用嚴格的MIME類型檢查。使用Web服務對我來說是新的,所以這只是我第二次使用Web服務。Ajax web服務請求

我下載並使用了插件<script type="text/javascript" src="js/jquery.ajax-cross-origin.min.js"></script>導致我拒絕運行腳本的第二個錯誤的corss起源錯誤。

下面是代碼:

  $.ajax({           
      type:"GET",     
      url: "xxxx://xxxxx/xxxxx/Service.asmx/GetParts?productSeriesId=165126&langId=EN&skipAttributes=Y",     
      dataType: "xml", 
      crossOrigin: true, 
      success: function (data) { 
       alert(data.d) 
      }, 
      error: function() {          
       console.log("error!"); 
      } 
     }); 
    }); 

這裏是拒絕錯誤的圖像

enter image description here

由於

回答

0

交叉的原始域誤差

您正在嘗試使用XMLHttpRequest。

此錯誤意味着Web服務不允許您的站點指示您的訪問者的瀏覽器使用訪問者的憑據(這是默認狀態)向其請求數據。

拒絕執行來自腳本,因爲它的MIME類型(文本/ html')不是可執行

您正在嘗試使用JSONP。

JSONP是繞過上述安全策略的黑客(它早於CORS,它是控制該策略的標準方式)。您正在嘗試使用它,並且瀏覽器正在失敗,因爲該網站沒有響應JSONP程序。


您可能需要更改Web服務支持CORS或JSONP,或者您需要獲取使用服務器端代碼(例如代理)的數據。

+0

看起來好像它將代理路由,因爲我沒有訪問該服務進行任何更改 –