我尝试使用JQuery post方法获取JSON值。Im编写以下代码,使用aspjson util从http://code.google.com/p/aspjson/生成JSON数据
<!--#include file="JSON_2.0.4.asp"-->
<!--#include file="JSON_UTIL_0.1.1.asp"-->
<%
Dim member
Set member = jsObject()
member("color1") = "Green"
member("color2") = "Yellow"
member("color3") = "Blue"
member.Flush
%>此代码生成jQuery数据;
{"color1":"green","color2":"red","color3":"blue"}最后,我的JQuery请求和响应代码如下:
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script>
jQuery(document).ready(function($) {
var formData = "A-1";
$.ajax({
method: "post",
url: "return_json.asp",
dataType: "json",
data: formData,
success: function (response) {
var data = JSON.parse(response);
$('#myJson').html('<table style="color:red"><tr><td>' + data.color1 + '</td><td>' + data.color2 + '</td></tr></table>');},
error: function(){
alert('Error Here...');}
});
});
</script>
<div id="myJson"></div>当我刷新页面时,会得到以下错误:
SyntaxError: JSON.parse: unexpected character
var data = JSON.parse(response);有什么问题吗?
发布于 2014-01-06 11:26:45
用这个,
$('#myJson').html('<table style="color:red"><tr><td>' + response.color1 + '</td><td>' + response.color2 + '</td></tr></table>');并删除以下一行:不需要再次解析json。
var data = JSON.parse(response);发布于 2014-01-06 11:21:57
$.ajax将为您解析传入的JSON,因此当您收到JS对象时,成功回调中的response变量已经被解析为JS对象。
当使用"json“作为数据类型时,jQuery.ajax的文档:
将响应计算为JSON并返回一个JavaScript对象。对JSON数据进行严格的解析;任何格式错误的JSON都会被拒绝,并抛出一个解析错误。从jQuery 1.9开始,空响应也会被拒绝;服务器应该返回null或{}响应。
删除JSON.parse并直接从您的响应变量中读取数据,您应该会做得很好。
success: function (response) {
$('#myJson').html('<table style="color:red"><tr><td>' + response.color1 + '</td><td>' + response.color2 + '</td></tr></table>');
}发布于 2014-01-06 11:24:48
您正在接收的成功响应数据已经在JSON中。删除JSON.parse
$.ajax({
method: "post",
url: "return_json.asp",
dataType: "json",
data: formData,
success: function (response) {
$('#myJson').html('<table style="color:red"><tr><td>' + response.color1 + '</td><td>' + response.color2 + '</td></tr></table>');},
error: function(){
alert('Error Here...');}https://stackoverflow.com/questions/20948876
复制相似问题