问个 ajax 的问题,谢谢帮助

2018 年 3 月 3 日
 bmcjxhgwy
在 django 中,前端发送了数据,我后台返回了{‘ res ’:0},在前端 response 中也接受到了,为什么 ajax 一直走 err 啊?是返回格式不对吗,应该在哪改啊?谢谢了
4329 次点击
所在节点    Python
28 条回复
liuxu
2018 年 3 月 3 日
json 应该用双引号
bmcjxhgwy
2018 年 3 月 3 日
谢谢,但他还是走 err 我返回的 data 是个 object,但一旦打印 data.res 他就显示 undefined,我觉得是返回的格式不对,但是不知道怎么改
gongpeione
2018 年 3 月 3 日
跨域了?
bmcjxhgwy
2018 年 3 月 3 日
在 F12 页面上没显示有跨域的问题.....
bmcjxhgwy
2018 年 3 月 3 日
我用了 jsonp 应该不会有跨域的请求..
loading
2018 年 3 月 3 日
返回没指定 mime ?
或者 js 里面先 序列化一下。

jQuery.parseJSON(jsonstr),
bmcjxhgwy
2018 年 3 月 3 日
序列化了好像也没什么用.....
bxb100
2018 年 3 月 3 日
前端用()拼接试试
Yunhao
2018 年 3 月 3 日
用 postman 跑一下试试?
dinggk
2018 年 3 月 3 日
后端指定 contenttype text/json
summerwar
2018 年 3 月 3 日
放代码啊 ,难道靠猜吗?不放代码来截图也行啊
loading
2018 年 3 月 3 日
不给代码确实已经没法帮你了。
Danielfile
2018 年 3 月 3 日
你是在外面打印的吧?要把 async 设置为 false,默认是异步执行请求的。
bmcjxhgwy
2018 年 3 月 3 日
这是 ajax:
$(function(){
$('#send-btn').click(function(){
$.ajax({
url:'http://127.0.0.1:8000/laoguo/',
type:'get',
data:{'name':'laoguo'},
dataType:'jsonp',
success:function(data){
if(data.res == 0){
alert('get')
}else{
alert('....')
}
},
error:function(data){
alert(data.res)
}
})
})
})

这是 django 的 view:
def test(request):
if request.method == "GET":
name = request.GET.get("name")
print(name)
return JsonResponse({"res":0})
else:
name = request.POST.getlist("name")
print(name)
return JsonResponse({"res":1})
misaka19000
2018 年 3 月 3 日
看下控制台有没有报错
xy90321
2018 年 3 月 3 日
jquery ?改成下面这样然后设个断点调试下
error: function(data, status, error){
}
总过先看看什么错咯
sublime
2018 年 3 月 3 日
返回的数据格式不对,你这个是 jsonp,需要后台处理下,比如 fn_cb({"res": 0}),不能直接返回 json
bmcjxhgwy
2018 年 3 月 3 日
@sublime fn_cb 是什么....我也觉得是数据格式不对
brickyang
2018 年 3 月 3 日
如果你确实知道是要用 JSONP,那么不能直接返回 JSON,而且 url 也写错了。

https://segmentfault.com/a/1190000008445998
sublime
2018 年 3 月 3 日
@bmcjxhgwy fn_cb 是任意函数名,jsonp 是在前台定义一个函数,后台返回一段 js 代码调用这个函数并传入数据,以此来实现跨域,jquery 应该对返回的数据做了校验,后台返回的数据格式不对,所以进了 err

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/434542

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX