由于集群环境中的跨域问题,我试图使用jsonp数据类型执行ajax请求。
我可以将jsonp请求映射到没有@刚体参数的方法,但是当我尝试用@刚体参数实现一个请求映射时,我会得到一个415不支持的媒体类型错误。
通常,当我遇到这个问题时,是由于一些属性在发布的json对象和它在Spring中映射到的Java对象之间没有正确映射。但我能找到的唯一区别是,使用jsonp它添加了一个名为callback的parm和一个名为下划线“\ux”的parm
因此,我将标记@JsonIgnoreProperties(ignoreUnknown=true)添加到我的Java对象中,并认为应该解决这个问题,但它仍然抛出这个错误。
还有什么我需要做的吗?
编辑:我现在在Spring:org的调试日志输出中看到了这个堆栈跟踪。springframework。网状物HttpMediaTypeNotSupportedException:不支持内容类型“应用程序/八位字节流”
$.ajax({
url : 'http://blah/blah.html',
data : { abc : '123' }, (I also tried to JSON.stringify the object but no difference)
dataType : 'jsonp',
success : function(response) {
alert('ok '+JSON.stringify(response));
},
fail : function(response) {
alert('error'+JSON.stringify(response));
}
});
Spring控制器是:
@RequestMapping({ "blah/blah" })
@ResponseBody
public ReturnObject getBlahBlah (@RequestBody MyObject obj) throws Exception {
}
参数对象是:
@JsonIgnoreProperties(ignoreUnknown = true)
public class MyObject {
private String abc;
// getter and setter for abc auto generated by MyEclipse
}
我在控制器方法上有一个从未命中的断点。
JSONP意味着jQuery将创建一个
正如您所看到的,这种方法不允许您在请求体中传递任何数据,所有数据都应该作为查询参数在URL中传递<代码>数据:{abc:'123'}
表示将abc=123
添加到URL。
在控制器端,您需要使用@RequestParam
(绑定单个参数)或@modeldattribute
(将多个参数绑定到一个对象中):
public ReturnObject getBlahBlah (@RequestParam("abc") int abc) throws Exception { ... }
问题内容: 我需要做一些跨站点脚本编写。下面的代码块包含jsonp方法,该方法好像失败了一样返回,但是当我将其更改为get请求时,我就成功了。我需要能够使用jsonp方法获得成功的响应。可以排除以下情况。响应是有效的json,此参数位于url?callback= JSON_CALLBACK中。这是我通过执行http请求和执行此代码的代码块收到的json。 http响应状态码200 代码块 请注意,
本文向大家介绍使用AngularJS 跨站请求如何解决jsonp请求问题,包括了使用AngularJS 跨站请求如何解决jsonp请求问题的使用技巧和注意事项,需要的朋友参考一下 今天写东西的时候遇到了 一种情况 ,因为用的不是自己公司人员写的接口 ,而我要写的东西是抓别的网页上的接口 所以出现了 一下这种情况 用 get请求出现拦截跨站请求资源 以下是解决办法, 这是我的请求: 我在浏览器模板
问题内容: 我正在尝试对Wikipedia API进行GET请求。如下使用jQuery可以正常工作: 但是我想使用fetch或axios api,该API会在 飞行前 通过请求方法 OPTIONS 停止。为什么它在jQuery中起作用,但在其他API中却不起作用? 我看到它可能与GET请求的Content-Type有关,在jQuery上,默认值似乎是 text / plain ,但是尝试更改fet
问题内容: 我正在使用JSONP ajax调用从其他域加载某些内容,并且如果用户在按钮上造成“ mouseover”,则将执行所有这些操作。 我可以将$ .ajax()调用return捕获为xhr对象,并在用户每次导致“ mouseover”时使用它中止ajax请求。但是仍然会调用JSONP回调函数,这会导致错误,并且我认为这是因为xhr.abort()方法不会阻止调用回调函数。 我尝试用try
问题内容: 我正在编写一个应用程序,我需要从另一台服务器访问客户端中的一些json数据。由于跨域问题,我计划使用jsonp。jQuery允许我使用$ .getJSON()方法来执行此操作,但是,我无法判断该方法是否失败(即服务器没有响应或其他原因)。所以我尝试了使用$ .ajax来获取JSON数据的方法。但这不起作用,我也不知道该怎么做。这是显示我的问题的示例: 如果使用此代码创建一个网页,然后单
问题内容: 我正在尝试将json对象导入变量。我根据教程使用服务。 我收到意外的令牌错误,因为我不应该使用 -但我真的不知道该使用什么。我用谷歌搜索了3个小时,发现只有$ http。或$ json。答案,但是我觉得可以做得更容易-更清晰。 (完美的解决方案是; D 服务文件: 控制器文件: json文件(几乎; D) 编辑: 我将$ resource(’file.json更改为https://ww