3

我正在尝试调用一个接受 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;
?>

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

笔记

这段代码工作正常。我试图执行跨域查询 - 我将文件上传到同一台服务器并且它有效。

4

2 回答 2

2
var url_file = myurl"; // remove `"` from end

函数的参数error是:

.error( jqXHR, textStatus, errorThrown )

不是data

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

喜欢:

success: function(data) {

}

有关更多信息,请查看.ajax()

笔记

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

于 2012-06-10T10:33:14.827 回答
0

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

data : { puzzle: 'Reset!' }

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

var url_file = myurl";

应该

var url_file = "myurl;
于 2012-06-10T10:31:50.887 回答