JQuery Ajax調用webservice的一些經驗記錄,在此執行個體中,解決跨域使用了Core解決方案,在下一篇文章中,會介紹JS 跨域的問題。 執行個體。、執行個體。、執行個體。 跨域解決方案 執行個體-源碼 前端
function SendPost(){ $.ajax({ 'url':'http://100.80.62.40:8080/WebService.asmx/HelloWorld', 'type':'POST', 'contentType': "application/json; charset=utf-8", 'data':'', 'dataType':'json', 'success': function(response){ console.log(response); console.log(response.d); console.log(JSON.parse(response.d)); } });}
這裡還是有個小問題的,順便介紹一下吧。那就關於JSON.parse解析的問題,其實這個是小問題,JSON 的這個正確格式為 :{“result”:”success”},注意內容一定為雙引號,不能為單引號,單引號就會出現如此的錯誤。故在webservic方法中為正確使用 json格式,使用將雙引號轉義。
, WebService
[WebMethod]public string HelloWorld(){ return "{\"result\":\"success\"}";}
Web.Config
system.web, 注意關於WebService及其子標籤的寫法
<system.web> <compilation targetFramework="4.5.2" debug="true"/> <httpRuntime targetFramework="4.5.2"/> <httpModules> <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web"/> </httpModules> <!--跨域請求--> <webServices> <protocols> <add name="HttpGet"/> <add name="HttpPost"/> </protocols> </webServices> </system.web>
第二部分,這一塊是為瞭解決JS 本源策略,跨域的問題。允許非同源調用
<system.webServer> <!--解決跨域請求 by wys --> <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Methods" value="OPTIONS,POST,GET"/> <add name="Access-Control-Allow-Headers" value="x-requested-with,content-type"/> <add name="Access-Control-Allow-Origin" value="*" /> </customHeaders> </httpProtocol> </system.webServer>