仅在 IE 中使用 jQuery 发布数据时出现错误请求错误
Bad Request error when posting data using jQuery in IE only
我用Knockout.js和Sammy.js编写了一个小型的单页应用程序,以及用于将数据发布回服务器的jQuery。
这在 Firefox 中工作正常,但我所有的 POST 在 IE 中都收到"400 错误请求"响应。
我已经使用Fiddler来查看发生了什么,我可以看到的唯一区别是IE在Referer标头中包含哈希,但我认为这不应该引起问题。
这是我的jQuery帖子:
$.ajax({
type: 'POST',
url: '/App_Presentation/BDM/RdmUserCategoryService.svc/GetUserCategoryUsersByCategory',
data: '{ "categoryId" : "' + this.params.catId + '" }',
contentType: 'application/json; charset=utf=8',
dataType: 'json',
success: function (data) {
self.editCategoryData({
CategoryID: ko.observable(categoryId),
CategoryName: ko.observable(categoryName),
UserList: ko.observableArray([])
});
self.editCategoryData().UserList(data.d);
}});
服务器上的方法不会被命中,成功回调也不会命中。当我添加错误回调时,我得到的唯一信息是"错误请求"错误消息。
有人有什么想法吗?
因此,
查看此内容的其他人都可以尝试解决此问题。尝试从contentType
中删除charset
。它适用于上述问题。
这可能与两个浏览器之间的轻微编码差异有关,WCF 可能会拒绝传入的请求,因为请求的编码实际上与contentType
中指定的编码不匹配。虽然这不是一个确定的可靠答案。这是我拥有的最好的。
最终代码:
$.ajax({
type: 'POST',
url: '/App_Presentation/BDM/RdmUserCategoryService.svc/GetUserCategoryUsersByCategory',
data: '{ "categoryId" : "' + this.params.catId + '" }',
contentType: 'application/json'
dataType: 'json',
success: function (data) {
self.editCategoryData({
CategoryID: ko.observable(categoryId),
CategoryName: ko.observable(categoryName),
UserList: ko.observableArray([])
});
self.editCategoryData().UserList(data.d);
}});
相关文章:
- 巨大的数据和PHP错误
- 本地跨原点数据错误
- d3在数据更新时错误地附加了dom元素
- 使用odata 4的jaydata 1.5和保存/更新数据时的错误
- 正在检查ajax响应中的错误数据
- Modx数据包管理器ext-all.js错误
- 尝试使用.ninnerHTMLlog打印数据,获取错误Uncaught TypeError:undefined不是函数
- 加载json时出现Ember.js和Ember数据错误
- JavaScript运行时错误:完成此操作所需的数据尚不可用
- 尝试发布大型JSON数据时出现错误请求错误
- 挖空错误:数据保留未定义
- 未定义 D3 错误数据
- 未捕获的引用错误:数据未在挖空中定义
- jquery .ajax 总是返回错误 - 数据被添加到数据库中
- 类型与未定义相比的错误 - 数据为空
- jQuery ajax json——查看返回的错误数据
- 从模拟端口读取时从Arduino串行接收到的错误数据
- 如何在socket io中向单个客户端发送错误数据包?
- Dropzone JS上传到WCF获取错误数据
- 在收到错误数据后清空剑道UI中的网格