相关疑难解决方法(0)

JQuery的getJSON()没有正确设置Accept头?

看起来人们过去曾遇到过Accept标题的问题,但我不确定我的问题是否相关.使用jQuery 1.4.2,我在使用JSON时遇到了麻烦getJSON().我可以在Firebug中观察请求/响应,看起来问题的根源是有问题的资源根据Accept标头返回不同的结果.即使文档说它应该设置,在Firebug中它显示为" / " - 显然,我想要"application/json".这是一个已知的错误?我应该设置一些我不知道的旗帜吗?

ETA:请求是跨站点的,如果这很重要,但我传递了一个callback=?查询参数,因此JQuery(成功!)将其视为JSONP.我在这个特殊情况下调用的服务支持一个接受覆盖查询参数(&accept=application/json),所以我让它手动工作,但我仍然认为标题搞砸是奇怪的,并希望我能够修复它,所以在处理可能不那么宽容的不同服务时,我不再遇到这种情况.我没有一种简单的方法来复制/粘贴我的开发环境中的代码,但这里是要点:

$.getJSON(baseURL + "?item=" + itemNum + "&callback=?", function(data){
  console.log(data);
}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,这并不是很复杂,并且应该(我99%肯定......)导致XHR与Accept头一起发送application/json.就像我说的那样,根据Firebug的Net控制台,情况并没有发生.如果重要,这是在Firefox 3.6.8中.

再次ETA:对于仍在读这篇文章的人,是的,它仍在发生,不,我不知道为什么.就像我说的,简单的getJSON()调用,真正的基本语法,跨站点,被视为JSONP,因为它包含一个回调查询参数.仍然愿意接受建议!

ajax jquery json getjson

10
推荐指数
1
解决办法
1万
查看次数

JQuery/Ajax POST 调用,不支持的媒体类型

我得到一个 Unsupported Media Type - The server refused this request because the request entity is in a format not supported by the requested resource for the requested method.

奇怪的是,如果我查看 firebug 中的 POST 调用,它们被指示为不成功,但是如果我执行“重新发送”,它们会被发送并检索到答案。

我已经在那里尝试了接受的答案:jquery ajax rest call - Unsupported Media Type - 对我不起作用。

-edit:如果有帮助,我会使用 Moxy。

                var sent = "This is a test request.";
                var add = "testing..";
                var request = { sentence: sent, addition: add };
                $.ajax({

                 url: "http://localhost:8080/MyProject/Rest/Path/toPost",
                 type: "POST",
                 data: JSON.stringify(request),
                 contentType: "application/json; charset=utf-8", 
                 dataType: "json",
                     success: …
Run Code Online (Sandbox Code Playgroud)

ajax rest jquery post

5
推荐指数
1
解决办法
5748
查看次数

标签 统计

ajax ×2

jquery ×2

getjson ×1

json ×1

post ×1

rest ×1