php - 响应正常,但 $.ajax 上的成功方法未触发?

标签 php html ajax

        $("#btnSubmit").click(function () {
            var fields = $("#testform").serializeObject();
            var response = "Nista";
            JSONstring = JSON.stringify(fields);
            alert(JSONstring);

            $.ajax({
                type: "GET", 
                url: "http://localhost/testSimple.php?symbol=IBM&jsonpCallback=?",
                // url: "http://localhost/testSimple.php?json=" + JSONstring,
                dataType: "jsonp", 

                success: function (msg) {
                    alert("SUCCESS");
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    alert(textStatus);
                }
            });

在 html 中:

<div id="dynamicContent" class="dynamicContent">
            <form id="testform" method="post">
            <div class="fm-req">
                <h2>
                    The Form:</h2>
            </div>
            <!--<input type="text" name="message" id="Text1" name="Fieldname22" />-->
            </form>
            <div class="fm-add">
                <input id="btnSubmit" type="button" value="Submit" />
            </div>
        </div>

和 php 脚本

<?php
$person = array(
        'name'    => 'Quentin',
        'country' => 'Australia'
    );

    header('Content-type: application/json');

    echo json_encode($person);
?>

在 firebug 中是可以的,但成功没有捕获到响应.. 为什么?

最佳答案

尝试将您的 PHP 脚本更改为:

<?php
$jsonpCallback = $_GET['jsonpCallback'];
$person = array(
        'name'    => 'Quentin',
        'country' => 'Australia'
    );

    header('Content-type: application/json');

    echo $jsonpCallback.'('.json_encode($person).')';
?>

在评论中更新您的问题:

你的 JavaScript 应该是这样的:

$("#btnSubmit").click(function () {
    var fields = $("#testform").serialize();
    $.ajax({
        type: "GET", 
        url: "http://localhost/testSimple.php?"+fields+"&jsonpCallback=?",
        dataType: "jsonp", 

        success: function (msg) {
            alert("SUCCESS");
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert(textStatus);
        }
    });
});

关于php - 响应正常,但 $.ajax 上的成功方法未触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6484194/

相关文章:

php - 计算每天的最大登录次数

html - Twitter Bootstrap HTML/CSS 布局和使用单选框

jquery - 在右侧对齐 html 表单(JQuery 移动版)

javascript - 正则表达式交换注释的 HTML 进出

java - 通过 AJAX 将数组 POST 到 Spring 的 Controller

jquery - $.ajax() : Origin null is not allowed

php - HIghcharts 导出服务器托管 ph-batik

php - 如何在MYSQLI中获取ofbject

javascript - 如何使用 jQuery 数据表使用 onChange 事件从 html 选择标签选项值中获取值?

php - 如何使用php数组和Mysql在复选框中设置值