2013-04-09 71 views
0

我有一個HTML頁面下面的AJAX方法:jQuery的AJAX方法調用Web服務接收403禁止

$(document).ready(function() { 
      $.ajax({ 
       type: "POST", 
      url: "http://www.webservice.com/blahblah.asmx/blahb123", 
      data: "tnWsGuid=TEST1", 
      dataType: "json", 
      contentType: "application/json; charset=utf-8", 
       success: function(msg) 
       { 
        alert("sucess") 
       }, 
       error: function(e) 
       { 
        alert(JSON.stringify(e));      
       } 
       }); 
     }); 

迴歸的我403禁止。一位同事建立了Web服務,我無法訪問代碼,也沒有當前能力在他休假時改變它。我需要顯示這些數據 - 在這一點上,我嘗試的一切都失敗了,並給我一個403禁止的錯誤。爲了顯示代碼,我已將url名稱和成功功能更改爲警報對話框。其他

的一件事是,JSON是包裹在XML看來,從ASP.NET web服務,看起來像這樣來:

<string xmlns="http://Walkthrough/XmlWebServices/"> 
{"approverName":"","emailAddress":"","companyName":"ABC","address":{"streetAddress1":"12 BlahBlah","streetAddress2":"","state":"ON","zipCode":"","country":"SO","phoneNumber":""},"tabledata:"[{"vendorPart":"AAAAA","partDescription":"N/A","price":"0.00","quantity":"28"},{"vendorPart":"BBBBBBB","partDescription":"N/A","price":"0.00","quantity":"3"},{"vendorPart":"CCCCCC","partDescription":"N/A","price":"0.00","quantity":"25"}]} 
</string> 

這不是本來打算不出我所料獲得JSON但是我現在無法做任何事情,必須在XML中處理它,只需將內部格式化的json轉換爲json對象即可。

我曾嘗試爲以下太:

$(document).ready(function() { 
       $.ajax({ 
        type: "GET", 
       url: "http://www.webservice.com/blahblah.asmx/blahb123", 
       data: "tnWsGuid=TEST1", 
       dataType: "xml", 
       contentType: "text/xml", 
        success: function(msg) 
        { 
         alert("sucess") 
        }, 
        error: function(e) 
        { 
         alert(JSON.stringify(e));      
        } 
        }); 
      }); 

最後,我將輸出從Firefox這裏的螢火蟲響應的兩個例子我試過(JSON/XML)

JSON:http://i.imgur.com/zJy4BvD.jpg

XML:http://i.imgur.com/6qiGVwQ.jpg

非常感謝您的閱讀!

+0

調試Web服務以確定拒絕您的請求的原因確實很難,無法訪問該Web服務。 – Quentin 2013-04-09 15:18:29

+0

根據您提供的信息非常有限,看起來該服務未授予其他來源的JS訪問權限。您無法讓網站上的瀏覽器讀取服務中的數據。移動(至少部分)您的邏輯服務器端。 – Quentin 2013-04-09 15:20:17

+0

如果我能夠訪問Web服務,我正在嘗試與這個人聯繫,特別是我可以做什麼來啓用此權限? – Surep 2013-04-09 15:25:16

回答

1

那麼刪除contentType標題似乎是要刪除403禁止。

1

如果調用是跨域,那麼如果不使用dataType jsonp,則可能會遇到問題。

+0

在chrome上,我在控制檯之後出現了跨域問題錯誤403禁止。然而,jsonp要求我改變web服務的權利?我也想過嘗試使用jsonp,但是有兩個問題,一個是返回的數據是xml而不是json,我無法有效地改變web服務來處理jsonp請求。 – Surep 2013-04-09 15:28:09