出于某些原因,我需要通过客户端请求选择我的回复content-type
。我想知道如何实现可以管理它的动态请求。我需要这样的东西:
e.g. /api/xml/values or /api/json/values
甚至:
e.g. /api/values?type=xml or /api/values?type=json
可以将ASP.net Web API
配置为动态处理内容类型。
答案 0 :(得分:1)
在angular.module('app')
.directive('isEmail', function() {
return {
restrict: 'A',
require: 'ngModel',
link: function(scope, element, attributes, ctrl) {
ctrl.$validators.isEmail = function(modelValue, viewValue) {
if (viewValue) {
var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(viewValue);
}
}
}
}
})
中,媒体类型格式化程序是一个可以:
Web API为
ASP.NET Web API
和JSON
提供媒体类型格式化程序。该 框架默认情况下将这些格式化程序插入管道。 客户端可以在的Accept头中请求JSON或XML HTTP请求。
因此,您无需更改或设置任何配置即可实现此目的。如果要确定响应内容类型,则需要向服务器发送正确的标头。
e.g。本节提供XML
:
JSON
和本节提供$.ajax({
headers: {
Accept: "text/json; charset=utf-8",
"Content-Type": "text/json; charset=utf-8"
},
url: '/api/Values',
method: 'get'
}).then(console.log);
:
XML
代表第一个代码(JSON内容类型):
$.ajax({
headers: {
Accept: "text/xml; charset=utf-8",
"Content-Type": "text/xml; charset=utf-8"
},
url: '/api/Values',
method: 'get'
}).then(console.log);
和第二个(XML内容类型):
["value1","value2"]