java jsonp 跨域 Uncaught SyntaxError: Unexpected token :
2018-01-25 20:07
441 查看
ajax在跨域请求的是,发生跨域问题,因此想到了jsonp来处理,
--------------------------------------------代码修改前------------------------------------------
但是随之而来又来了新的问题。JS代码如下:
$.ajax({
type: "get",
url: "http://www.zhiqi17.com/pay/wxpay/getPayInWeChat/" + getUrlParam('orderId'),
contentType: "application/json; charset=utf-8",
dataType: 'jsonp',
data: {
openId: res.data
},
async: false,
success: function(obj) {
console.log(obj);
}
});
后台java代码如下:
@RequestMapping(value = "/test", method = RequestMethod.GET)
public @ResponseBody Object getPayInWeChat(HttpServletRequest request){
Map<String,String> returnMap=new HashMap<String, String>();
returnMap.put("a", "123");
returnMap.put("b", "4456");
return JSONObject.toJSONString(returnMap);
}经调用浏览器回报如下错误:
Console中:
Network中:
返回结果中Response中拿到了后台返回的数据。
-------------------------------------------------代码修改后----------------------------------------------------
js代码:$.ajax({
type: "get",
url: "http://abc.com/test",
contentType: "application/json; charset=utf-8",
dataType: 'jsonp',
jsonp: 'callback',//自定义
jsonpClaaback: "success_jsonpCallback",//用户定义的callback函数,没有定义的话会jQuery会自动生成以jQuery开头的函数
data: {
openId: res.data
},
async: false,
success: function(obj) {
console.log(obj);
}
});以上代码标红为修改的代码。
java 代码:
@RequestMapping(value = "/test", method = RequestMethod.GET)
public @ResponseBody Object getPayInWeChat(HttpServletRequest request){
Map<String,String> returnMap=new HashMap<String, String>();
returnMap.put("a", "123");
returnMap.put("b", "4456");
String callback = request.getParameter("callback"); //不指定函数名默认 callback
return callback+ "(" + JSONObject.toJSONString(returnMap) + ")";
}
这样就完美解决jsonp的问题啦。
--------------------------------------------代码修改前------------------------------------------
但是随之而来又来了新的问题。JS代码如下:
$.ajax({
type: "get",
url: "http://www.zhiqi17.com/pay/wxpay/getPayInWeChat/" + getUrlParam('orderId'),
contentType: "application/json; charset=utf-8",
dataType: 'jsonp',
data: {
openId: res.data
},
async: false,
success: function(obj) {
console.log(obj);
}
});
后台java代码如下:
@RequestMapping(value = "/test", method = RequestMethod.GET)
public @ResponseBody Object getPayInWeChat(HttpServletRequest request){
Map<String,String> returnMap=new HashMap<String, String>();
returnMap.put("a", "123");
returnMap.put("b", "4456");
return JSONObject.toJSONString(returnMap);
}经调用浏览器回报如下错误:
Console中:
Network中:
返回结果中Response中拿到了后台返回的数据。
-------------------------------------------------代码修改后----------------------------------------------------
js代码:$.ajax({
type: "get",
url: "http://abc.com/test",
contentType: "application/json; charset=utf-8",
dataType: 'jsonp',
jsonp: 'callback',//自定义
jsonpClaaback: "success_jsonpCallback",//用户定义的callback函数,没有定义的话会jQuery会自动生成以jQuery开头的函数
data: {
openId: res.data
},
async: false,
success: function(obj) {
console.log(obj);
}
});以上代码标红为修改的代码。
java 代码:
@RequestMapping(value = "/test", method = RequestMethod.GET)
public @ResponseBody Object getPayInWeChat(HttpServletRequest request){
Map<String,String> returnMap=new HashMap<String, String>();
returnMap.put("a", "123");
returnMap.put("b", "4456");
String callback = request.getParameter("callback"); //不指定函数名默认 callback
return callback+ "(" + JSONObject.toJSONString(returnMap) + ")";
}
这样就完美解决jsonp的问题啦。
相关文章推荐
- jQuery-JSONP 插件跨域调用功能(Uncaught SyntaxError: Unexpected token : 出错原因解释)
- jQuery-JSONP 插件跨域调用功能(Uncaught SyntaxError: Unexpected token : 出错原因解释)
- Nutz 框架下 测试 jQuery-JSONP 插件跨域调用功能(Uncaught SyntaxError: Unexpected token : 出错原因解释)
- jsonp 跨域 Uncaught SyntaxError: Unexpected token : 的问题
- ajax 跨域 jsonp对返回的json格式报错"Uncaught SyntaxError: Unexpected token :"
- 跨域请求报错 Uncaught SyntaxError: Unexpected token :
- 加入跨域支持后ajax请求返回Uncaught SyntaxError: Unexpected token :
- Javaweb中 Uncaught SyntaxError: Unexpected token o in JSON at position 1
- ajax跨域访问-jsonp报错:Uncaught SyntaxError: Unexpected token":"or"<"or"{"
- 【已解决】Uncaught SyntaxError: Unexpected token o in JSON at position 1
- eval()报错 Chorme :Uncaught SyntaxError: Unexpected token{ 火狐:SyntaxError: missing ] after element lis
- 解决方法 Uncaught SyntaxError: Unexpected token < in JSON at position 0
- 【已解决】Uncaught SyntaxError: Unexpected token o in JSON at position 1
- 【已解决】Uncaught SyntaxError: Unexpected token in JSON at position 0
- myctrl.js报错: Uncaught SyntaxError: Unexpected token :
- Uncaught (in promise) SyntaxError: Unexpected token o in JSON at position 1
- 代码中出现:Uncaught SyntaxError: Unexpected token o in JSON at position 1
- Uncaught SyntaxError: Unexpected token <
- Uncaught SyntaxError: Unexpected token :
- 使用空格时Uncaught SyntaxError: Unexpected token ILLEGAL