ajax成功提示200 ok,关于javascript:Ajax请求返回200 OK,但是触发了错误事件而不是成功...

感谢您的响应,您能告诉我一件事吗?我如何从代码背后返回JSON值。我正在使用带有C_的ASP.NET。这解决了我的问题,但也可以让我知道这件事。

使用JSON类可能是?

@潘卡吉:你最好把它作为另一个问题发表。但简短的回答是:有两种方法可以代替$.ajax,你可以试试$.getScript。在服务器端C脚本中,只需放置alert('Record Deleted');(没有标记),并将C脚本的ContentType设置为text/javascript。$.ajax也可能有效,但我想不起来你是怎么改变dataType: 'script',的。您可能不再需要成功处理程序了。

(ii)在服务器端C脚本中执行Response.Write("{"success": 1, "message": "Record Deleted"}");。编写您的$.ajax成功处理程序,如下所示:function AjaxSucceeded(result) {alert(result.success + ' ' + result.message);}。

对于我来说,这解决了我的问题,我的webmethod重新调整好了,但是在firefox中得到了一个"无效标签"。我认为这与JSONP和.NET有关。我花了一段时间才找到这个职位。

我在那里迷糊了一会儿。HTTP 200-OK通常意味着响应是成功的。这就像是说"错误-行动是成功的"。那不应该是成功的。只是"说:"很好的接球@salmana

哇,真是太好了!把这个加到你的控制器上:format.json { render json: @mymodel.to_json, status: :ok }。

这个答案可能不完整。刚才我在jsonlint.com上验证了我的json,它明确地说它是一个有效的json,但仍然会触发"错误"事件,并显示xhr.status 200。还有什么其他原因?–Ramesh Pareek刚刚编辑

@Rameshpareek错误是什么?错误事件处理程序提供了三个参数。你能把它们寄出去吗?

是的,错误事件处理程序的xhr.status参数返回了parseerror。后来问题解决了。虽然jsonlint接受它作为有效的json,但我在编码json时使用了json pretty print选项。删除此选项可使其正常工作。对于未来的访问者,我们中的一些人会在编码的JSON周围添加

>标记,显然这会造成问题,因为尽管浏览器不显示那些[cc lang="javascript"]标记,但它们确实在Ajax响应中显示。

或者只需删除"datatype:json"参数我在使用$.post时遇到了同样的问题,没有指定数据类型。在本例中,jquery猜测数据类型,然后在分析失败时出错。这是一个非常讨厌,很难找到的哥查。我通过将数据类型设置为"text"来修复它。[/collapse]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值