大佬教程收集整理的这篇文章主要介绍了jquery – 在更新到5.1.0之后将数据发布到WebApi失败,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的典型POSt语句如下所示:
showProgress(true,self.PanelID(),'Saving...') j$.ajax({ type: "POST",url: uri,data: dataObj,error: function (jqXHR,status,error) { showProgress(false); GLOBAl.setmessage(self,'Error saving ' + opType + '<br>' + error,truE); },success: function (data,jqXHR) { showProgress(false); if (status === 'success') { GLOBAl.setmessage(self,opType + " saved ok"); //....
"An error has occurred." Exceptionmessage "This method or property is not supported after httprequest.Form,Files,InputStream,or BinaryRead has been invoked." ExceptionType "System.Web.httpException" StackTrace at System.Web.httprequest.GeTinputStream(Boolean persistEntityBody,Boolean disableMaxrequestLength) at System.Web.httprequestWrapper.GetBufferedInputStream() at System.Web.http.WebHost.SeekableBufferedrequestStream..ctor(httprequestBase request) at System.Web.http.WebHost.httpControllerHandler.c__DisplayClass11.b__b() at System.Web.http.WebHost.httpControllerHandler.LazyStreamContent.get_StreamContent() at System.Web.http.WebHost.httpControllerHandler.LazyStreamContent.CreateContentReadStreamAsync() at System.Net.http.httpContent.ReadAsStreamAsync() at System.Net.http.httpContentextensions.d__0`1.MoveNext() --- End of stack trace from prevIoUs LOCATIOn where exception was thrown --- at System.Runtime.Compilerservices.TaskAwaiter.ThrowForNonsuccess(Task task) at System.Runtime.Compilerservices.TaskAwaiter.HandleNonsuccessAndDebuggerNotification(Task task) at System.Runtime.Compilerservices.TaskAwaiter`1.GetResult() at System.Web.http.ModelBinding.FormatterParameterBinding.d__0.MoveNext() --- End of stack trace from prevIoUs LOCATIOn where exception was thrown --- at System.Runtime.Compilerservices.TaskAwaiter.ThrowForNonsuccess(Task task) at System.Runtime.Compilerservices.TaskAwaiter.HandleNonsuccessAndDebuggerNotification(Task task) at System.Runtime.Compilerservices.TaskAwaiter.GetResult() at System.Web.http.Controllers.httpActionBinding.d__0.MoveNext() --- End of stack trace from prevIoUs LOCATIOn where exception was thrown --- at System.Runtime.Compilerservices.TaskAwaiter.ThrowForNonsuccess(Task task) at System.Runtime.Compilerservices.TaskAwaiter.HandleNonsuccessAndDebuggerNotification(Task task) at System.Runtime.Compilerservices.TaskAwaiter.GetResult() at System.Web.http.Controllers.ActionFilterResult.d__2.MoveNext() --- End of stack trace from prevIoUs LOCATIOn where exception was thrown --- at System.Runtime.Compilerservices.TaskAwaiter.ThrowForNonsuccess(Task task) at System.Runtime.Compilerservices.TaskAwaiter.HandleNonsuccessAndDebuggerNotification(Task task) at System.Runtime.Compilerservices.TaskAwaiter`1.GetResult() at System.Web.http.Filters.AuthorizationFilterAttribute.d__2.MoveNext() --- End of stack trace from prevIoUs LOCATIOn where exception was thrown --- at System.Runtime.Compilerservices.TaskAwaiter.ThrowForNonsuccess(Task task) at System.Runtime.Compilerservices.TaskAwaiter.HandleNonsuccessAndDebuggerNotification(Task task) at System.Runtime.Compilerservices.TaskAwaiter`1.GetResult() at System.Web.http.Dispatcher.httpControllerDispatcher.d__0.MoveNext()"
这些是我的解决方案中的nuget包
package id="Microsoft.AspNet.Mvc" version="5.1.0" targetFramework="net45" package id="Microsoft.AspNet.Razor" version="3.1.0" targetFramework="net45" package id="Microsoft.AspNet.SignalR.Client" version="2.0.1" targetFramework="net45" package id="Microsoft.AspNet.Web.optimization" version="1.1.2" targetFramework="net45" package id="Microsoft.AspNet.WebApi" version="5.1.0" targetFramework="net45" package id="Microsoft.AspNet.WebApi.Client" version="5.1.0" targetFramework="net45" package id="Microsoft.AspNet.WebApi.Core" version="5.1.0" targetFramework="net45" package id="Microsoft.AspNet.WebApi.HelpPage.VB" version="5.1.0" targetFramework="net45" package id="Microsoft.AspNet.WebApi.oData" version="5.1.0" targetFramework="net45" package id="Microsoft.AspNet.WebApi.WebHost" version="5.1.0" targetFramework="net45" package id="Microsoft.AspNet.WebPages" version="3.1.0" targetFramework="net45" package id="Microsoft.bcl" version="1.1.6" targetFramework="net45" package id="Microsoft.bcl.build" version="1.0.13" targetFramework="net45" package id="Microsoft.Data.Edm" version="5.6.0" targetFramework="net45" package id="Microsoft.Data.oData" version="5.6.0" targetFramework="net45" package id="Microsoft.Net.http" version="2.2.18" targetFramework="net45" package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45"
有人知道有什么问题吗?任何想法如何解决?
编辑
样品控制器代码:
Public Class ImportController Inherits ApiController Public Function SaveImportSession(sessid As String,entity As SIImportSessionDTO) As httpResponsemessage Try inspectionData.SaveImportSession(sessid,entity) Dim response = request.CreateResponse(httpStatusCode.Accepted) Return response Catch ex As httpResponseException Throw Catch ex As Exception Throw New httpResponseException(request.CreateResponse(Of String)(httpStatusCode.InternalServerError,ex.messagE)) End Try End Function
Public Shared Sub Register(ByVal config As httpConfiguration) config.MaphttpAttributeRoutes() config.Routes.MaphttpRoute( _ name:="DefaultApi",_ routeTemplate:="api/{Controller}/{iD}",_ defaults:=New With {.id = RouteParameter.optional} _
问题,我的服务器端代码甚至没有达到,管道上的其他东西都抛出异常
谢谢
我的邮政编码使用$.ajax(…),如初始消息中所示.
但是jquery的.ajax post数据应用程序/ x-www-form-urlencoded.
这在以前的WebAPI版本中起作用,但是在最新的更新中,它似乎默认不接受application / x-www-form-urlencoded.
我将内容类型更改为application / json,我不得不将数据转换为json,这样可以解决问题.
所以,而不是
j$.ajax({ type: "POST",success: function(...)
我不得不改变
j$.ajax({ type: "POST",data: JSON.Stringify(dataObj),contentType: "application/json; charset=utf-8",success: function(...)
以上是大佬教程为你收集整理的jquery – 在更新到5.1.0之后将数据发布到WebApi失败全部内容,希望文章能够帮你解决jquery – 在更新到5.1.0之后将数据发布到WebApi失败所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。