我尝试使用JQuery post
方法获取JSON值。
我编写了以下代码,用于使用来自http://code.google.com/p/aspjson/
aspjson
util生成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);
可能是什么问题?
答案 0 :(得分:1)
使用此,
$('#myJson').html('<table style="color:red"><tr><td>' + response.color1 + '</td><td>' + response.color2 + '</td></tr></table>');
删除以下行:不需要再次解析json。
var data = JSON.parse(response);
答案 1 :(得分:0)
$.ajax
将为您解析传入的JSON,因此成功回调中的response
变量在收到时已经被解析为JS对象。
从jQuery.ajax的文档中使用“json”作为数据类型:
将响应计算为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>');
}
答案 2 :(得分:0)
您收到的成功响应数据已经是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...');}