Ste*_*ins 6 ajax jquery asp.net-web-api
我正在使用ASP.NET Web API,我度过了美好的时光.至少对GET而言.出于某种原因,当我尝试通过jQuery发送数据$.post()
或$.ajax()
由我收到的值ApiController
总是空.更奇怪的是,用Fiddler向它发送数据就好了.我确定这是我在javascript中构建对象的问题,但我似乎无法找到它.这是代码:
// C#
[HttpPost]
public HttpResponseMessage BeginTrack([FromBody]string requestContext) {
// requestContext is always null. Except when it comes from Fiddler.
RequestContext ctx = null;
if (Request.Content.Headers.ContentType.MediaType == "application/json") {
try {
ctx = Json.Decode<RequestContext>(requestContext);
} catch (Exception ex) {
return Request.CreateErrorResponse(HttpStatusCode.InternalServerError,
"An error has occured while processing your request. See Exception for details.", ex);
}
}
if (ctx == null) //...
Run Code Online (Sandbox Code Playgroud)
而jQuery ......
getRequestContext = function (source, docType, id, ip) {
return {
SourceSite: source,
DocumentType: docType,
Id: id,
HostUrl: document.URL,
HostDomain: document.location.hostname,
IPAddress: ip,
UserAgent: navigator.userAgent,
Referrer: document.referrer
};
},
beginTracking = function (done, fail) {
var data = JSON.stringify(getRequestContext('none', 'P', 0, 'ip'));
$.post(
serviceBase + "/Tracking/BeginTrack",
data,
done,
"json"
).fail(fail);
}
Run Code Online (Sandbox Code Playgroud)
更新:显然,这在ASP.NET WebForms(.NET 3.5)中运行良好,但在同一项目中不适用于MVC4 ......
归档时间: |
|
查看次数: |
4223 次 |
最近记录: |