簡體   English   中英

使用Jquery的Ajax函數處理來自ASP.NET Web服務的響應

[英]Handling response from an ASP.NET web service using Jquery's Ajax function

我有一個來自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>

這個jQuery函數正在調用:

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

我的第一個問題是,此功能存在403個禁止的問題,但是省略contentType更改了它。 然后我遇到了XML解析問題,一時興起,將dataType更改為固定的腳本,並給了我響應,然后點擊了成功函數。 為什么這樣做?

我也想知道如何打印此數據,因為嘗試將其視為json無效,XML也不可行。

在Chrome瀏覽器中,我收到以下警告:

Resource interpreted as Script but transferred with MIME type text/xml: "http://www.webservice.com/blahblah.asmx/blahb123?tnWsGuid=TEST1&_=1366025879568."

附加到此網址末尾的部分使我感到困惑(在TEST1之后)。 在控制台中,我也在chrome中收到此錯誤:

Uncaught SyntaxError: Unexpected token < 

Firebug給了我:

SyntaxError: syntax error
 [Break On This Error]  

<?xml version="1.0" encoding="utf-8"?>
<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>

因此,基本上現在既然dataType是腳本,我會得到某種響應,但是仍然不知道如何解析該數據。 最好放入html表。

希望您能提供幫助! 謝謝閱讀!

編輯:

這是Firebug 在此處記錄的標頭信息的鏈接

您需要在服務器發送json數組時將數據類型設置為json。 在此處查看數據類型部分http://api.jquery.com/jQuery.ajax/

我已經解決了這個問題,並成功地在IE中返回了數據集(由於Chrome和Firefox的異步問題,目前還不能在Chrome和Firefox上運行,我希望在托管此頁面時可以解決這兩個問題。我添加了$.support.cors = true;就在ajax函數和我的新成功函數之前,正確地顯示了數據,如下所示:

function(data, status, jqxhr) { xmlString = data;
alert(xmlString); }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM