lyn*_*vie 9 javascript ajax jquery
这真让人难以置信.我从ajax收到错误回调.但是,如果我从错误消息中获取res.responseText(返回正确,顺便说一句)并使用它,它就做对了.就好像我收到了成功回调一样.
数据设置如下:
var dataToSend = {fieldname : textdata};
Run Code Online (Sandbox Code Playgroud)
和ajax调用是这样的:
var ajaxOptions = {
url: '/newpage',
data: JSON.stringify(dataToSend),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
cache: false,
processData: false,
type: 'POST',
success: function(res) {
console.log("success!");
$('#' + divname).html(res);
},
error: function(res) {
console.log("There was an error: " + JSON.stringify(res));
$('#' + divname).html(res.responseText);
}
};
$.ajax(ajaxOptions);
Run Code Online (Sandbox Code Playgroud)
错误消息是:出现错误:{"readyState":4,"responseText" [this part is perfectly fine], "status":200, "statusText":"OK"}.
Die*_*ego 15
如果您的responseText不是正确的JSON,则会引发解析错误.无论是确保你的反应是一个有效的JSON或删除dataType: "json".
来自jQuery文档:
dataType(默认值:Intelligent Guess(xml,json,script或html))
类型:字符串
您期望从服务器返回的数据类型.如果没有指定,jQuery将尝试根据响应的MIME类型推断它(XML MIME类型将产生XML,在1.4 JSON中将产生一个JavaScript对象,在1.4脚本中将执行脚本,其他任何东西将是以字符串形式返回).可用的类型(以及作为成功回调的第一个参数传递的结果)是:
...
"json":将响应计算为JSON并返回JavaScript对象.跨域"json"请求将转换为"jsonp",除非请求选项中包含jsonp:false.JSON数据以严格的方式解析; 任何格式错误的JSON都会被拒绝,并抛出一个解析错误.从jQuery 1.9开始,空响应也被拒绝; 服务器应该返回null或{}的响应.(有关正确的JSON格式的更多信息,请参阅json.org.)
| 归档时间: |
|
| 查看次数: |
24072 次 |
| 最近记录: |