Javascript 如何返回几个成功的数据?
是否可以在ajax成功时返回两个不同的数据,例如:Javascript 如何返回几个成功的数据?,javascript,jquery,ajax,Javascript,Jquery,Ajax,是否可以在ajax成功时返回两个不同的数据,例如: $.ajax({ url: url_action, type:'POST', data: dataToSend, success:function(results) { $(".photosLive").html(results); } })) 在结果中,有两条信息:标题和图像。 然后我需要把标题放在另一个div.titleLive,把图像放在.photosLive(但已经可以了) 我该怎么做
$.ajax({
url: url_action,
type:'POST',
data: dataToSend,
success:function(results)
{
$(".photosLive").html(results);
}
}))
在结果中,有两条信息:标题和图像。
然后我需要把标题放在另一个div.titleLive
,把图像放在.photosLive
(但已经可以了)
我该怎么做 您可以返回一个JSON对象,该对象包含两个字段,title和photo,然后可以解析并插入到DOM中 JSON语法基本上是Javascript对象语法,请看: 几乎任何服务器端语言都有来自对象的JSON生成器 JSON示例:假设您的服务器生成我分配给var JSON的字符串(而不是html),因此您将其作为对成功方法的ajax调用的响应接收
var json = '{title:"A new title", photo:"path/to/pic"}'
var result = jQuery.parseJSON( json );
$('.titleLive').text(result.title);
$('.photosLive').attribute(src, result.photo);
以JSON格式返回的响应只是具有正确格式的纯文本,例如在服务器端,类似于:
setResponse("{title:\"A new title\", photo:\"path/to/pic\"}");
嗯。最好的方法是让您请求的URL以JSON的形式返回结果。但是,如果必须返回HTML,您可以执行以下操作:
...
success: function(results) {
// select the image and title from wherever it may be in the HTML returned
var response = $(results),
title = response.find('#title').text(),
image = response.find('img').attr('src');
// Do whatever with your info.
}
编辑:返回JSON的示例:
返回标题和图像信息的页面:
{"title":"My Title","image":"http://mydomain.com/image.png"}
以及您的成功回调(您不必为响应设置新变量,我这样做只是为了说明):
这一切都取决于您返回的数据类型(Json/XML/等等)。 假设返回纯文本:
标题:lorup ipsum,图像:foobar.png
:
在success
功能中:
var returnedData=结果代码>
var title=returnedData.split(“,”[0]。替换('title:”,“”)代码>
var image=returnedData.split(“,”[1]。替换('image:”,“”)代码>
$(“.titleLive”).html(标题)代码>
$(“.photosLive”).html(图像)代码>
顺便说一下,这不干净。正如我提到的,最好的方法是使用结构化数据
问候。如何使用JSON做到这一点?你的答案是用jQuery编码不?是的,那绝对是jQuery。如果您从请求返回JSON,那么它非常简单<代码>结果。标题
和结果。图像
将立即可供您使用。好的!但是如何以JSON返回我的结果
?@Steffi:无论你调用什么URL,都必须将结果格式化为JSON。jQuery将自动检测来自服务器的响应是HTML还是JSON。不涉及div。假设您正在向某个url发出AJAX请求,比如说/images
。如果要在浏览器中浏览到该URL,它只会返回{“title”:“Some title”,“image”:http://mydomain.com/someimage.png“}
。当您使用jQuery向该URL发出AJAX请求时,success
回调的结果将是一个Javascript对象。如果您要发出警报(results.title)
,您将从/images
返回标题。JSON只是格式化信息的一种方式。
success: function(results) {
var title = results.title,
image = results.image;
// Do whatever with your info.
}