在 $.ajax 中获取字符串响应
Getting String response in $.ajax
var module = (function(){
return{
loadJSON: function(url, success, error){
$.when($.ajax({
type: 'GET',
cache: false,
url: url,
contentType: 'application/json',
data: {
format: 'json'
},
success: success,
error: function(err){
console.log('Error: ', err);
}
})).then(function(data){
alert('AJAX completed');
});
}
}
})();
$(document).ready(function(){
function _updateCompany(data){
data = JSON.parse(data);
data = data.data;
for(var i=0; i<data.length; i++){
var item = '<li>Name: ' + data[i]['name'] + ' Total Emp: ' + data[i]['totalCount'] + '</li>';
$('#companyList').append(item);
}
}
function _error(err){
console.log('Error: ', err);
}
module.loadJSON('/path/to/company.json', _updateCompany, _error);
});
在这里我得到字符串响应而不是对象。因此必须 JSON.parse(data);
问题出在哪里?
您收到纯文本响应,因为服务器返回的数据内容类型错误。
您需要服务器在 JSON 数据的 HTTP 响应标头中包含Content-Type: application/json
。
如果你在传递给ajax
的选项对象中设置了dataType: "json"
,那么你将告诉jQuery忽略内容类型并将其解析为JSON(但坦率地说,服务器配置错误,无论如何你都应该修复它)。
设置dataType
还将设置Accept
请求标头,以告诉服务器首选 JSON ...但这在您提供的 URL 中是相当隐含的。
相关文章:
- 如何使用AngularJS应用基于Json字符串响应的条件CSS类
- 从字符串中删除 HTML(在 JSON 响应中)
- string http响应!=javascript中的相同字符串
- 如何根据字符串检查ajax响应
- 当类型设置为JSON时,如何检查AJAX响应字符串
- 在 $.ajax 中获取字符串响应
- 无法解析javascript中的json字符串,这是java方法的响应
- 如何将一些参数从javascript接收响应字符串 asp.net 页面并更新html文档
- XHR 响应文本为空字符串
- 如何返回对象而不是字符串以响应 nock
- 字符串替换函数没有响应
- jQuery 在 AJAX 响应字符串中查找脚本标记
- 如何将字符串数组响应转换为 javascript 2D 数组
- 返回 base64 文件的字符串作为响应 ASP.NET 使用 httpHandler 对 AJAX 请求的响应
- 如何从响应文本获取 JSON 字符串到 JavaScript 中
- html 响应数据 ID 不能在 Facebook API 调用中用作字符串
- XHRHTTPRequest 响应不能等于普通字符串
- IE将来自JAX-RS web服务的字符串响应视为文件
- 如何使用jQuery在GET请求上强制字符串响应
- 如何在$.ajax中使用if语句(并检查字符串响应