0

感谢您花时间帮助我。

情况:

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

以下是代码:

PHP(连接.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. 为什么在我使用时它会给我 404(第一个场景中响应的第一行),并且在我使用type = 'POST'时会正常运行type = 'GET'

  2. 为什么第二种情况会返回整个 PHP 文件内容,而不仅仅是“哈哈”(不带引号)。

4

1 回答 1

0

这两个问题的答案是您正在connection.php通过对服务器的请求下载文件,GET而您所期望的是服务器运行connection.php脚本。

你在运行任何网络服务器吗?您必须设置一个支持 PHP 的服务器来处理您所期望的请求,因为apachenginx是最流行的(而 nginx 是最简单的)

于 2016-08-14T08:10:48.710 回答