Php jqueryajax问题没有错误

Php jqueryajax问题没有错误,php,jquery,ajax,Php,Jquery,Ajax,因此,我通过jqueryajax请求将存储列表添加到web页面。这个小实用程序不是动态的,只是数据库驱动的。我决定使用jQuery/AJAX来传输数据,因为当我尝试将PHP嵌入到当前的phpcms中时,会遇到一系列相互冲突的错误 我遇到的问题是,在尝试向PHP脚本发出请求时,我遇到了一个jQueryAjax错误,我不知道为什么 这是我的AJAX请求 $(document).ready(function(){ $.ajax({ type:"POST", ur

因此,我通过jqueryajax请求将存储列表添加到web页面。这个小实用程序不是动态的,只是数据库驱动的。我决定使用jQuery/AJAX来传输数据,因为当我尝试将PHP嵌入到当前的phpcms中时,会遇到一系列相互冲突的错误

我遇到的问题是,在尝试向PHP脚本发出请求时,我遇到了一个jQueryAjax错误,我不知道为什么

这是我的AJAX请求

$(document).ready(function(){
    $.ajax({
        type:"POST",
        url:"getStores.php",
        dataType: "json",
        success:function(data){
            results(data);
        },
        error: function(data) {
            console.log(data.error);    
        }
    });
});
我得到的神秘控制台错误是

function (){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this} 
以下是我的PHP代码(如果有帮助):

//database connection
$return_arr = array();
$sql = mysql_query("SELECT * FROM where_to_buy");
while($row = mysql_fetch_array($sql, MYSQL_ASSOC))
{  
    $row_array['store_name'] = $row['store_name'];
    $row_array['store_url'] = $row['store_url'];
    array_push($return_arr,$row_array);
}
echo json_encode($return_arr);
我认为问题可能是因为我将JSON包装在一个数组中

根据请求从php脚本编辑::JSON输出

[{"store_name":"Example 1","store_url":"http:\/\/www.example1.com"},{"store_name":"Example 2","store_url":"http:\/\/www.example2.com"}]

谢谢你的帮助

之所以会收到奇怪的错误消息,是因为jQuery ajax函数的错误回调采用了3个参数,而不是1个参数,如以下文档所述:

第一个参数是一个jQuery特殊的XMLHttpRequest对象,它有一个名为
error
的属性,其中包含您看到的登录到控制台的函数。在执行ajax调用期间发生的实际错误是作为第三个参数传入错误回调

要查看它,您应该执行以下操作:

$(document).ready(function(){
    $.ajax({
        type:"POST",
        url:"getStores.php",
        dataType: "json",
        success:function(data){
            results(data);
        },
        error: function(jqXHR, text, error) {
            console.log(error);    
        }
    });
});
这会让你更接近真正的问题

更新:

请显示php脚本的输出。这可能是因为它没有返回有效的json。如php文档()所述,
[json\u encode]仅适用于UTF-8编码数据。

您还可以签入到
json\u last\u error
(),查看编码是否由于某种原因失败

更新3:

看起来您的问题可能是php脚本的路径

尝试以下方法:

$(document).ready(function(){
    $.ajax({
        type:"POST",
        url:"/getStores.php", // <-- notice the leading slash!!!
        //dataType: "json",
        success:function(data){
            //results(data);
            console.log(data);
        },
        error: function(jqXHR, text, error) {
            console.log(error);    
        }
    });
});

您是否也可以发布您的
results()
function您能否在成功处理程序中获得警报(“hello”)?您确定错误签名不是这样的:
error(jqXHR,textStatus,errorshorn)
?在这种情况下,第一项是XHR对象,而不是错误消息。add header('Content-type:application/json');echo json_编码前($return_arr);它是否真的发出了AJAX请求并在处理结果时遇到了问题,或者它在发送AJAX请求之前就失败了?谢谢,这很有帮助…错误现在输出了一个错误“Unexpected token”@skevthedev请查看编辑并提供有关php方面的更多信息。谢谢!我在上面发布了我的json输出,我正在查看您发布的链接再次感谢您的帮助!问题是我甚至不能让success函数触发…当我运行php脚本时得到的JSON在我的第一篇文章中是这样的…我还添加了header('Content-type:application/JSON');对于脚本,我认为这可能是问题所在更新:忘记注释掉数据类型…当我改变时,我得到的只是各种js脚本的源代码
$(document).ready(function(){
    $.ajax({
        type:"POST",
        url:"/getStores.php",
        dataType: "json",
        success:function(data){
            results(data);
        },
        error: function(jqXHR, text, error) {
            console.log(error);    
        }
    });
});