【发布时间】:2014-07-26 14:48:41
【问题描述】:
我有一个简单的角度控制器,如下所示:
angular.module('widget.controllers', [])
.controller('ProductController', ['$scope','$http', function ($scope, $http) {
$http.jsonp('http://localhost:27467/api/Products/GetProducts/EUR?callback=JSON_CALLBACK')
.success(function (data) {
console.log(data);
});
}]);
以及在 web api 控制器中的一个简单操作:
[HttpGet]
public HttpResponseMessage GetProducts(string id)
{
var returnData = data;
string callback = ControllerContext.Request.GetQueryNameValuePairs().Where(kv => kv.Key == "callback").Single().Value;
return Request.CreateResponse(HttpStatusCode.OK, returnData, new JsonpMediaTypeFormatter(new JsonMediaTypeFormatter(),callback), new MediaTypeHeaderValue("text/javascript"));
}
我在哪里使用this formatter。但是响应不包含包裹在 JSON 中的回调函数的名称。它会产生类似的东西:
({.....});
代替:
myCallback({....});
请提出解决方案。
【问题讨论】:
标签: javascript json angularjs asp.net-web-api jsonp