如何将字符串数据从ajax成功转换为javascript数据
How to Convert string data from ajax success to javascript data?
大家好,我有这段代码,我是ajax的初学者,我使用的是tinymce jquery,我使用在中找到的提及插件,所以我在这段代码中做的是列出我可以提及的用户列表,所以我需要运行这段代码:
提到插件网站是:https://github.com/CogniStreamer/tinyMCE-mention
WebMethod部分:
[WebMethod]
public static string GetUsers()
{
return "[{name:'Messi'},{name:'Jason'},{name:'Omar'},{name:'Eren'}]";
}
这是ajax代码部分:
function dat() {
$.ajax({
type: "POST",
url: "Default.aspx/GetUsers",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
alert(data.d);//show me this alert "[{name:'Messi'},{name:'Jason'},{name:'Omar'},{name:'Eren'}]"
return data.d;
},
error: function (data) {
return "";
}
});
}
这是jquery tinymce选项部分:
tinymce.init({
selector: '#Selector',
theme: 'modern',
elements: "rte",
plugins: [
'advlist autolink mention lists link image charmap preview hr anchor pagebreak',
'searchreplace wordcount visualblocks visualchars code fullscreen',
'insertdatetime media nonbreaking table contextmenu directionality',
'emoticons template paste textcolor colorpicker imagetools'
],
mentions: {
source:dat()//the default option was [{ name: 'Messi'},{name:'Jason'},......]
},})
所以我真正需要做的是将dat()return部分转换为与默认值一样我真的很感谢你帮助我
因此,成功函数是一个回调函数,在dat函数完成之前不会触发它。所以dat函数不会返回任何内容。尝试这个add-asyc:false,这样方法就会等待。
function dat() {
var retdat;
$.ajax({
type: "POST",
url: "Default.aspx/GetUsers",
data: "{}",
contentType: "application/json; charset=utf-8"
async:false
dataType: "json",
success: function (data) {
alert(data.d);//show me this alert "[{name:'Messi'},{name:'Jason'},{name:'Omar'},{name:'Eren'}]"
retdat = data.d;
},
error: function (data) {
return "";
}
});
return retdat;
}
您不需要这个,但要回答问题的标题,您可以使用JSON.parse()
您还可以移动微小的mce-init函数以在success函数中执行,然后可以保持调用异步。
我找到了问题的答案。
我需要的是eval()
函数。我用source: eval(dat())
替换了source:dat()
,一切都很好。
您可以尝试
function dat() {
$.ajax({
type: "POST",
url: "Default.aspx/GetUsers",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
alert(data.d);//show me this alert "[{name:'Messi'},{name:'Jason'},{name:'Omar'},{name:'Eren'}]"
var result = JSON.parse(data.d);
//or you can do without do statically like split(data.d,'"'); then whatever result you get can return that is also
return result;
},
error: function (data) {
return "";
}
});
}
数据本身的格式已经正确。
由于数据是异步获取的,因此必须在回调中调用process
方法才能将数据传递回插件。这里将对此进行更详细的解释。
相关文章:
- 如何从servlet获取数据到ajax成功
- ajax请求成功,但可以'我看不到我的数据
- Ajax正确发布表单,但不会返回成功数据
- ajax成功地将数组中的数据放入表中各自的输入中
- 使用JSON数据检索AJAX外部成功函数
- 使 ajax 请求和成功数据显示在 id <选择>选择>部分中
- 按钮在第一次成功的 ajax 数据加载后不起作用
- 为什么不允许在jquery数据表服务器端处理ajax中使用成功
- Ajax响应成功,但无法使用数据(未捕获语法错误:意外标识符)
- 如何在ajax成功调用中读取解析后的json数据
- ajax调用成功,但未返回任何数据
- 编辑当前表单向导以成功发布数据
- 当调用成功时,如何从angular 2中的http调用返回数据
- 在 require.js 中返回成功数据,并带有回调
- 成功:功能(数据);不使用命名函数
- jQuery$.ajax方法.成功:使用响应数据的函数
- 如何访问作为参数发送到jquerypost的成功回调中的数据值
- Ajax响应给出数据成功错误
- jQuery/json/Ajax -如何从数据成功中找到第一响应
- 美元.Post数据成功返回数据不成功,但成功