簡體   English   中英

VB.NET ASMX返回響應標頭為XML而不是JSON

[英]VB.NET ASMX returning the response header as XML instead of JSON

我的ASMX調用返回Content-Type = text/xml; charset=utf-8 Content-Type = text/xml; charset=utf-8

我正在使用ASP.NET 3.5和jQuery.Ajax
添加了這些東西是來自Stack Overflow的眾多建議

我做了這些事

  1. 在web.config完成

     <remove verb="*" path="*.asmx"/> <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
  2. 在ASMX內部的函數調用中,我正在使用這些

     <WebMethod()> _ <ScriptMethod(ResponseFormat:=ResponseFormat.Json)> _ Public Function GetCompanies(SearchedCompany As String) As String 
  3. jQuery Ajax調用是這樣的

     var searchString = "SearchedCompany=" + $(".auto-company").val(); $.ajax({ type: "POST", url: "Services/CompaniesService.asmx/GetCompanies", data: searchString, dataType: 'json', success: function (msg) { companies = msg.hasOwnProperty("d") ? msg.d : msg; }, error: function (xhr, status, error) { } }); 

但是無論我做什么,響應頭仍然是xml類型。 我在這里想念哪一部分?

免責聲明:我知道這在這里已經被問過很多次了。 但是卻找不到任何答案。 如您所見,我已經實現了所提供的所有解決方案。

您還需要將contentType設置為“ application / json; charset = utf-8”

http://encosia.com/using-jquery-to-consume-aspnet-json-web-services/

由於jQuery確實在具有數據的POST請求上設置了內容類型,因此該內容類型最初被設置為默認的“ application / x-www-form-urlencoded”。 然后在IE7中,setRequestHeader添加了“ application / json; charset = utf-8“,而不是真正設置它。 因此,內容類型不適用於JSON序列化,並且Web服務正在返回XML而不是JSON。

暫無
暫無

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

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