[英]Jquery Ajax Call to WEB API
我正在嘗試對WEB API方法進行簡單的jquery ajax調用。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
type: 'POST',
url: 'http://redrock.com:6606/api/values/get',
dataType: "jsonp",
crossDomain: true,
success: function (msg) {
alert("success");
},
error: function (request, status, error) {
alert(error);
}
});
});
</script>
WEB API動作:
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
ajax調用沒有訪問WEB API。 我在瀏覽器控制台中收到以下錯誤。
獲取http://redrock.com:6606/api/values/get?callback=jQuery18207315279033500701_1383300951840&_=1383300951850 400(錯誤請求)
您沒有包含路由設置的代碼,但假設它是正確的,問題可能是由於您在嘗試使用POST請求命中時將WebApi方法命名為“Get”。 發生這種情況是因為WebApi試圖從動作名稱中找出HTTP動詞。
我建議重命名操作或將[HttpPost]
屬性添加到您的操作方法。 您也可以嘗試使用WebApiRouteDebugger包。
除非您正在進行跨域調用,否則無需使用jsonp(jsonp還需要Web API中的自定義格式化程序)。
$.getJSON('http://redrock.com:6606/api/values', function(data){
console.log(data);
});
編輯:
要安裝jsonp媒體類型格式化程序,請查看此項目: https : //github.com/WebApiContrib/WebApiContrib.Formatting.Jsonp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.