javascript
  • jquery
  • google-chrome
  • soap
  • 2012-05-04 93 views 0 likes 
    0

    我已經在javascript中創建了一個SOAP客戶端。問題是它只適用於Google Chrome。SOAP客戶端只能在谷歌瀏覽器中使用

    代碼:

    $("#send").click(function (event) { 
        var wsUrl = "http://myip:8084/Service1.asmx"; 
        var soapRequest = 
         '<?xml version="1.0" encoding="utf-8"?> \ 
         <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \ 
         xmlns:xsd="http://www.w3.org/2001/XMLSchema" \ 
         xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> \ 
          <soap:Body> \ 
           <GetVozilo xmlns="http://mydomain.com/apps"> \ 
             <vin>' + $("#vin").val() + '</vin> \ 
           </GetVozilo> \ 
          </soap:Body> \ 
         </soap:Envelope>'; 
    
         console.log(soapRequest); 
    
           $.ajax({ 
            type: "post", 
            url: wsUrl, 
            contentType: "text/xml", 
            dataType: "xml", 
            data: soapRequest, 
            success: processSuccess, 
            error: processError 
           }); 
    
          }); 
    

    在控制檯我也收到此錯誤:

    OPTIONS http://mydomain.com/Service1.asmx 403 (Forbidden)

    你能幫幫我嗎?

    回答

    1

    有一種方式來獲得不同的數據域在任何瀏覽器。在jQuery中,您可以使用JSONP。 更多:http://www.jquery-tutorial.net/ajax/same-origin-policy/

    0

    聽起來很像這是因爲same origin policy

    無法發送Ajax的requets到另一個域(在你的情況localhost VS 84.255.246.99:8084)比他一個腳本執行上。我假設你爲Chrome添加了某種異常規則,因此它適用於該瀏覽器。

    檢查這一點,使用Firebug的或不工作的瀏覽器的develover控制檯檢查響應報頭 - 你可能會發現這樣的事情:

    X-Frame-Options:sameorigin 
    
    相關問題