Jquery AJAX根据GET或POST产生不同的结果

时间:2016-08-14 07:57:18

标签: jquery ajax cloud9

感谢您抽出宝贵时间帮助我。

情况:

我在使用基于Cloud9的jQuery(http://c9.io)获取AJAX的数据时遇到了一些麻烦。所有文件都在同一目录中。

以下是代码:

PHP(connection.php):

<?PHP
    echo "haha";
?>

Javascript:

var testAjax = function(){
    $.ajax({
        url : 'connection.php',
        type : 'POST',
        data : {'name' : 'Ben'},
        success : function(response){
            console.log(response);
        },
        error: function(jqXHR, textStatus, errorThrown){
            console.log('jqXHR.responseText:  ' + jqXHR.responseText);
            console.log('jqXHR.responseXML :  ' + jqXHR.responseXML);
            console.log('textStatus:   ' +  textStatus);
            console.log('errorThrown:   ' + errorThrown);
        },
        dataType : 'text' //expected data type
    });
}

在这里,我有type = 'POST'。当我在控制台上运行testAjax()时,它会给我以下内容:

jquery-3.1.0.js:9392 POST https://(root address)/connection.php 404 (Not Found)send @ jquery-3.1.0.js:9392ajax @ jquery-3.1.0.js:8999testAjax @ script.js:63(anonymous function) @ VM3304:1
script.js:71 jqXHR.responseText:  Cannot POST /jkeezie/homework-checker/WIP/connection.php

script.js:72 jqXHR.responseXML :  undefined
script.js:73 textStatus:   error
script.js:74 errorThrown:   Not Found

然而,当我将其更改为type = 'GET'并摆脱data : {'name' : 'Ben'},并在控制台上运行相同的行时,我得到了这个:

<?PHP
    echo "haha";
?>

问题:

  1. 为什么当我使用type = 'POST'并在使用type = 'GET'时通过罚款时,它会给我404(第一个方案中的第一行响应)?

    < / LI>
  2. 为什么第二个场景会返回整个PHP文件内容,而不仅仅是“haha”(没有引号)。

1 个答案:

答案 0 :(得分:0)

这两个问题的答案是您通过connection.php请求将GET文件下载到服务器,而您期望的是服务器运行connection.php改为{1}}脚本。

你在运行任何网络服务器吗?您必须设置一个支持PHP的处理器,以便按照您的预期处理此请求,apachenginx是最受欢迎的(并且nginx更容易)