我在AJAX数据中遇到问题。 (我使用的是asp.net Web表单)我需要从页面dom元素中收集数据,因为我想在同一页面中异步地将它们的值附加到表行。只是为了测试我在成功函数中写了警报(数据)。但是数据会返回“源代码”或“未定义”。
下面我尝试了两种方法来获取HTML和JSON的ajax数据。结果是一样的。
ajax with JSON dataType:
AppCompatActivity
带有html dataType的ajax:
drawable
(我也尝试过alert(data [0] .number)和alert(data.number),不工作。)
感谢。
答案 0 :(得分:1)
尝试使用此代码,我认为它可能有用..
$(document).ready(function () {
$('img').live('click', function (event) {
event.preventDefault();
var jsonObject = new Object();
jsonObject.number = $(this).attr('id');
jsonObject.date = 'date value';
jsonObject.name = 'desired name';
var jsonData = json.parse(jsonObject);
$.ajax({
url: "your orders",
type: "POST",
data: jsonData,
dataType: "json"
});
success: function (data) {
alert(data);
}
});
});
});
答案 1 :(得分:0)
我假设你从服务器返回有效的json(我建议你也检查一下)。
在你的jquery ajax调用中你有配置
dataType: JSON
JSON是窗口对象(IE8 +)上的一个对象,而不是ajax配置的有效选项。所以你将一个javascript对象传递给jquery ajax调用而不是一个识别的命令;意思是它不知道该怎么做。您需要将此配置属性更改为
dataType: 'json'
有关ajax配置选项正确值的详细信息,请参阅jquery documentation。 dataType选项的所有选项都是字符串值。
旁注 - 我建议您不要在jquery中使用'live',因为它已被弃用,而是建议使用'on'代替。
编辑 - 其他建议
服务器端代码而不是jquery可能是一个问题。从ajax url中的aspx页面可以假设您使用的是Web Forms吗?如果是这样,那么对aspx页面的ajax调用通常意味着在该页面上调用web方法;在这种情况下,ajax url需要指定Web方法的名称。例如url: '/some/path/treatment.aspx/MyMethod'
将在C#中使用相应的Web方法定义(在VB中会有类似的东西)
[WebMethod]
public static string MyMethod(){
// your code
return someJsonString;
}
我建议对ajax请求发送的内容以及服务器端代码的接收情况进行一些调查。也许在ajax调用上添加一个错误回调,看看它是否被击中以及它报告的内容。我猜想客户端发送的内容和服务器期望的内容之间存在一些不匹配但没有更具体的信息我不确定问题究竟是什么。
我希望这些建议有所帮助。