0

我正在处理一个 ajax 帖子,由于某种原因,它一旦发布就死了。在我的萤火虫上,显示的网址变为红色。

发布的网址是http://localhost:8080/dev/?mod=table&page=sale&col=1&order=DESC&view=

该文件确实存在于正确的目录中,并且我的代码确实alert('works'); 在 beforeSendalert('作品完成'); 完成但没有从服务器回显,就像我之前在萤火虫上提到的那样,网址是红色的

   var url = "./?mod=table"+getAllURLParam(); //get all param's. (getAllURLParam() function used to pass $_GET's
   var poststr = "page="+page+"&col="+escape(column)+"&order="+direc+"&view="+view;

                $.ajax({type: "GET", 
                    url: url,
                    data: poststr,
                    beforeSend: function (XMLHttpRequest) { alert('works'); },
                    success: function(data)
                    {         
                        alert(data);
                       /*if (data == 'ERR:sql'){ alert('There was a sql error.'); }
                       else { $('#browseDIV').html(data); }*/
                    }, 
                    complete: function (XMLHttpRequest, textStatus) { alert('works complete'); },
                    dataType: "html"});

我的php代码就是这个..

<?php

echo '<h1>hello</h1>';

?>

我不明白我做错了什么。有任何想法吗?

4

2 回答 2

2

没有firebug的截图很难确定,但通常红色文本表示没有找到资源。请检查您是否有index.php文件位于http://localhost:8080/dev/或重写路径以包含文件名,例如:http://localhost:8080/dev/filename.php.

此外,对于调试,您可以在调用的成功部分发出警报(或 console.log() - 它的侵入性较小),只是为了看看它是否曾经被解雇,我非常怀疑。

于 2013-08-12T06:38:24.227 回答
0

这是一个跨域请求。因为您使用的是Localhost。因此,您可以将以下代码添加到您的 php 文件中。然后你使用ajax发送请求。

if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    header('Access-Control-Allow-Origin: *');
    header('Access-Control-Allow-Methods: POST, GET, PUT, DELETE');
    header('Access-Control-Allow-Headers: X-Requested-With, Content-Type');
}

它的工作很好

于 2013-08-12T06:42:00.373 回答