以下ajax调用适用于IE10以外的所有浏览器(除非我将其设置为IE9标准模式) 我用小提琴手看着它,看起来似乎没有通过ie10任何想法传递参数?
var paramArray = '{"ID":1}';
$.ajax({
type: 'POST',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
url: '/assets/services/coreWebServices.svc/GetCategoriesWithoutColumns',
data: paramArray,
success: successFn,
error: errorFn
});
抛出以下错误
The OperationFormatter could not deserialize any information from the Message because the Message is empty (IsEmpty = true).
at System.ServiceModel.Dispatcher.PrimitiveOperationFormatter.DeserializeRequest(Message message, Object[] parameters)
System.Runtime.Serialization.SerializationException: Error in deserializing body of request message for operation 'GetCategoriesWithoutColumns'. The OperationFormatter could not deserialize any information from the Message because the Message is empty (IsEmpty = true).
at System.ServiceModel.Dispatcher.PrimitiveOperationFormatter.DeserializeRequest(Message message, Object[] parameters)\u000d\u000a
at System.ServiceModel.Dispatcher.DemultiplexingDispatchMessageFormatter.DeserializeRequest(Message message, Object[] parameters)\u000d\u000a
at System.ServiceModel.Dispatcher.UriTemplateDispatchFormatter.DeserializeRequest(Message message, Object[] parameters)\u000d\u000a
at System.ServiceModel.Dispatcher.CompositeDispatchFormatter.DeserializeRequest(Message message, Object[] parameters)\u000d\u000a
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.DeserializeInputs(MessageRpc& rpc)\u000d\u000a
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)\u000d\u000a
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)\u000d\u000a
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc& rpc)\u000d\u000a
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc)\u000d\u000a
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc)\u000d\u000a
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc)\u000d\u000a
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc)\u000d\u000a
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)\u000d\u000a
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc)\u000d\u000a
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
System.ServiceModel.CommunicationException: Error in deserializing body of request message for operation 'GetCategoriesWithoutColumns'. The OperationFormatter could not deserialize any information from the Message because the Message is empty (IsEmpty = true).
at System.ServiceModel.Dispatcher.PrimitiveOperationFormatter.DeserializeRequest(Message message, Object[] parameters)\u000d\u000a
at System.ServiceModel.Dispatcher.DemultiplexingDispatchMessageFormatter.DeserializeRequest(Message message, Object[] parameters)\u000d\u000a
at System.ServiceModel.Dispatcher.UriTemplateDispatchFormatter.DeserializeRequest(Message message, Object[] parameters)\u000d\u000a
at System.ServiceModel.Dispatcher.CompositeDispatchFormatter.DeserializeRequest(Message message, Object[] parameters)\u000d\u000a
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.DeserializeInputs(MessageRpc& rpc)\u000d\u000a
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)\u000d\u000a
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)\u000d\u000a
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc& rpc)\u000d\u000a
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc)\u000d\u000a
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc)\u000d\u000a
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc)\u000d\u000a
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc)\u000d\u000a
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)\u000d\u000a
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc)\u000d\u000a
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
答案 0 :(得分:4)
这似乎是jQuery与IE10(至少Windows 7预览版)中的一个错误。 POST数据没有在请求中发送,我已经将错误的详细信息记录到jQuery:http://bugs.jquery.com/ticket/12790#comment:18
更新:在我的情况下,免费下载管理器中的一个错误导致了IE10中的问题。他们有fixed the issue(3.9.2 build 1281.- 2012年12月26日),所以它很好玩。如果您阅读上面jQuery链接中的注释,您可以看到有人选择了该注释并卸载FDM也纠正了该问题。所以它不是IE10或jQuery的问题,而是一个改变正常行为的附加组件。
答案 1 :(得分:2)
就我而言,下载Accelerator Plus是原因。卸载DAP解决了该问题。
答案 2 :(得分:1)
我知道这个问题很久以前被问到了,但我想补充一下我的答案。
这不是IE或jquery的错误。某些下载管理器(如 DAP,FDM和IDM )负责此问题(即使已禁用)。删除这些下载管理器将起作用。
问题是这些下载管理器有一些不完整的某些URLMon接口,而会干扰POST上传。
很少有人报告Google Gears也对此问题负责。禁用后,问题将解决。(未测试)
答案 3 :(得分:0)
在ajax请求中每个POST发送数据在IE10中不起作用(即使在我的情况下,没有安装可能会干扰IE10的其他程序)。在ajax请求中每个GET发送数据对我来说很有用。
首先根据JavaScript错误控制台,这似乎是一个jquery问题和JSON数据的问题(如错误的编码或非法字符或无效的json),分别在响应中发送回json数据时,但都是用json数据很好。然后我意识到POST数据没有被发送,我将jquery $ .ajax调用中的“type”参数改为“GET”,这解决了问题。
答案 4 :(得分:0)
我在IE10 / jQuery 1.11.1中使用FormData对象的Ajax POST请求遇到了同样的问题。 POST数据和文件附件都没有发送到服务器。只发送了URL参数。
我正在使用此补丁向jQuery Ajax添加进度回调:
https://github.com/englercj/jquery-ajax-progress
如果没有补丁,请求在IE10中完美运行。
该补丁在所有其他浏览器中都能正常运行。