我无法使用jQuery / AJAX正确发布数据
我有以下......
<script type="text/javascript">
function notifyPPAComplete() {
$.ajax(
{
type: "POST",
url: "PsychometricTest.aspx/UpdateDB",
data: {'3'},
dataType: json,
success: success,
contentType: application/json
});
}
$.post('PsychometricTest.aspx/UpdateDB', function(data) {
alert ('success');
});
</script>
在帖子之后我似乎没有收到警报,是否有人能看到明显的问题?
答案 0 :(得分:3)
data: {'3'}
这是一个无效的javascript文字。你可以尝试这样:
data: JSON.stringify({ model: { foo: '3' } })
请注意使用JSON.stringify
方法将javascript文字序列化为JSON字符串。它原生于现代浏览器中。如果您需要支持旧版浏览器,则可以包含json2.js脚本。
同样contentType: application/json
是非常无效的javascript。应该是:
contentType: 'application/json'
另外:dataType: json
无效。应该是dataType: 'json'
。
所以在一天结束时:
<script type="text/javascript">
function notifyPPAComplete() {
$.ajax({
type: "POST",
url: "PsychometricTest.aspx/UpdateDB",
data: JSON.stringify({ model: { foo: '3' } }),
dataType: 'json',
success: function(result) {
},
contentType: 'application/json'
});
}
</script>
会成功发布到:
[WebMethod]
public static void UpdateDB(MyModel model)
{
...
}
MyModel:
public class MyModel
{
public string Foo { get; set; }
}
答案 1 :(得分:0)
<script type="text/javascript">
function notifyPPAComplete() {
$.ajax(
{
type: "POST",
url: PsychometricTest.aspx/UpdateDB,
data: {'3'},
dataType: json,
success: function(success){a = success},<-- here use the function()
contentType: application/json
});
}
$.post('PsychometricTest.aspx/UpdateDB', function(data) {
alert (data); <-- here use the variable not the literal string
});
</script>
顺便说一下,你有$ .post和$ .ajax ???这是家庭作业吗?
答案 2 :(得分:0)
在您的代码段中notifyPPAComplete()
永远不会被调用,$.post('PsychometricTest.aspx/UpdateDB
不会发布任何数据。
还可以尝试在Firefox中使用Firebug来进行更好的AJAX调试。
应该是:
$.post('PsychometricTest.aspx/UpdateDB', { name: "John", time: "2pm" }, function(data) {
alert ('success');
});
其中{ name: "John", time: "2pm" }
是您要发布的数据。