jQuery没有发布数据

时间:2011-11-03 10:59:40

标签: javascript jquery ajax

我无法使用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>

在帖子之后我似乎没有收到警报,是否有人能看到明显的问题?

3 个答案:

答案 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" }是您要发布的数据。