【发布时间】:2015-08-21 08:30:30
【问题描述】:
我为 Wordpress 插件编写脚本,但 ajax 响应有问题。当我想要获取 json 文件时,jQuery.ajax 返回{readyState: 1}。
尽管我有dataType: 'json',但带有async: false 的jQuery.ajax 返回纯文本。
App.Language = {
GetLanguageFile: function(lang) {
var LangFile = GetJsonLanguageFile(lang);
return LangFile;
},
}
function GetJsonLanguageFile(lang) {
var json = $.ajax({
url: ajaxurl,
type: 'POST',
dataType: 'json',
// async: false,
data: {action:'adminajax',method:'GetJsonLanguageFile',language: lang},
})
return json;
}
当函数返回 readyState: 1 时,在控制台中我有带有键“responseText”的对象和来自 json 文件的纯文本结果,但我无法获取此键值,当函数为异步时,返回的是对象,我可以得到结果,但它是纯文本,虽然我有 dataType: 'json'。
我做错了什么?如何从这个 json 文件内容中制作普通对象?
【问题讨论】:
-
当
async为false时,你没有得到一个jQXHR对象作为$.ajax return,这是你的意思吗? -
不,当 async 为 false 时,函数返回具有正确 responseText 的对象。我不想用 async false 得到这个
-
好的,现在使用 async false,$.ajax 返回 json 对象。我不得不在 json 文件中将 ' 更改为 " 但如果没有 async false 仍然无法工作
标签: javascript jquery ajax json wordpress