2011-10-06 102 views
2

我想消費一個帶有AJAX的.NET webservice,並且想要一個JSON響應。一切正常。我已經使用了提琴手並獲得了適當的Json迴歸網。在瀏覽器中使用普通URL也會提供適當的XML。AJAX POST JSON到.NET Webservice給出500內部服務器錯誤

即使使用PHP Curl也給了我正確的JSON響應,但當我嘗試使用AJAX時,我得到一個「500內部服務器錯誤」。

任何幫助appriciated,謝謝。

<script>   
    $(document).ready(function() { 
     $.ajax({ 
     type: "POST", 
     url: "http://localhost:9000/APIs/BuyVoucherService.asmx/HelloWorld", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function(data) { 
      alert(data); 
      }, 
     error: function(data){ 
     alert(data); 
     } 
    }); 
}); 
</script> 
+0

你爲什麼在發佈?當您在瀏覽器中訪問該頁面時,這是一個GET。嘗試將類型更改爲GET。此外,發佈500錯誤的全部內容。 –

+0

當從.asmx webservice獲取JSON時,您必須使用POST和contentType application/json,否則它將簡單地返回XML – limlim

+0

我已經意識到的問題是,由於存在交叉問題,這不會起作用。獲得AJAX調用以使用跨域解決方案的解決方案是使用JSONP。 http://www.json-p.org/更多信息 – limlim

回答

0

我已經意識到的問題是,由於跨DOMIAN問題,這不會工作。獲得AJAX調用以使用跨域解決方案的解決方案是使用JSONP。 http://www.json-p.org/

1

看來,你已經忽略你的請求數據定義,嘗試添加這樣的事情:

data: "{}", 
+0

我省略了數據:「{}」,因爲我單單想要發送任何數據。但是我得到了與數據相同的結果:「{}」或數據:{}。我已經解決了這個問題,但不幸的是,我不能回答我自己的問題。解決方案在OP的評論中。 JSON-P是由於跨國問題而需要的 – limlim

相關問題