【问题标题】:jQuery/JSON/PHP failingjQuery/JSON/PHP 失败
【发布时间】:2012-06-10 10:28:56
【问题描述】:

我正在尝试调用一个接受 JSON 数据的 php 脚本,将其写入文件并使用 jQuery/AJAX 调用返回简单的文本响应。

jQuery 代码:

   $("input.callphp").click(function() {
    var url_file = myurl;
    $.ajax({type : "POST",
            url : url_file,
            data : {puzzle: 'Reset!'},
            success : function(data){
                alert("Success");
                alert(data);
            }, 
            error : function (jqXHR, textStatus, errorThrown) {
                alert("Error: " + textStatus + "<" + errorThrown + ">");
            },
            dataType : 'text'
    });
});

PHP 代码:

<?php
  $thefile = "new.json"; /* Our filename as defined earlier */
  $towrite = $_POST["puzzle"]; /* What we'll write to the file */
  $openedfile = fopen($thefile, "w");
  fwrite($openedfile, $towrite);
  fclose($openedfile);
  echo "<br> <br>".$towrite;
?>

但是,调用永远不会成功,并且总是会给出错误提示“错误:[Object object]”。

注意

此代码运行良好。我正在尝试执行跨域查询 - 我将文件上传到同一台服务器并且它有效。

【问题讨论】:

    标签: php jquery json


    【解决方案1】:
    var url_file = myurl"; // remove `"` from end
    

    error 函数的参数是:

    .error( jqXHR, textStatus, errorThrown )
    

    不是data

    您可以获得data(即来自服务器的响应数据)作为success()函数参数。

    喜欢:

    success: function(data) {
    
    }
    

    更多信息请看.ajax()

    注意

    如果您尝试从跨域(即来自不同域)获取数据,则需要jsonp 请求。

    【讨论】:

    • success: function(data) { ... } 完全有效。
    • 是的,但你说(在你编辑之前)参数是不是 data,这是不正确的。
    • @JamWaffles 我告诉.error(),无论如何感谢先生,您的评论
    • 啊,你做到了,我很抱歉。
    • #thecodeparadox :感谢您的回复。我在提出建议后更新了代码,但是,我仍然收到错误警报“错误:错误”。
    【解决方案2】:

    您的data 对象无效;不应引用密钥:

    data : { puzzle: 'Reset!' }
    

    此外,SO 的语法高亮指出您在代码中遗漏了 "

    var url_file = myurl";
    

    应该是

    var url_file = "myurl;
    

    【讨论】:

    • 感谢您的回复。我已经更新了数据对象(编辑了原始帖子)。但是,我仍然收到错误警报“错误:错误”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多