javascript - PHP 回显 jQuery AJAX 请求

标签 javascript php jquery ajax

这是我上传图像文件的 jQuery 请求

$('#upload-image').change(function(e){
    var file = e.target.files[0];
    var imageType = /image.*/;
    if (!file.type.match(imageType))
        return;
    console.log(file);
    var form_data = new FormData();
    form_data.append('file', file);
    console.log(form_data);
    $.ajax({
        url: 'http://localhost/upload.php',
        cache: false,
        contentType: false,
        processData: false,
        data: form_data,
        type: 'POST',
        success: function(response){
            console.log(response);
        },
        error: function(error){
            console.log(error);
        }
    });
});

这是本地网络服务器上的 upload.php

<?php
    header('Access-Control-Allow-Origin: *');
    if ( 0 < $_FILES['file']['error'] ) {
        echo 'Error: ' . $_FILES['file']['error'] . '<br>';
    }
    else {
        move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']);
        $target_path = $_SERVER['DOCUMENT_ROOT'] . "/uploads/" . $_FILES['file']['name'];
        echo $target_path;
    }
?>

当我上传图片并发送请求时。它为我返回并记录完整的 upload.php 代码行,而不是我想要的 echo 命令行的结果。我检查了控制台网络选项卡,发现响应除了 upload.php 的完整代码外什么也没有。它确实不处理服务器端的任何事情。我做错了什么?

最佳答案

您需要确保 PHP 在服务器端运行。如果没有安装 PHP 处理程序,服务器将以文本形式返回 upload.php 文件的内容。我认为这是您的主要问题。

根据您的平台,您可以尝试:

首先确保您的 PHP 正常工作,方法是在您的 webroot 文件夹中创建一个名为 info.php 的文件,其中包含以下内容

<?php
phpinfo();

这应该会显示您的配置。然后你就可以开始调试 Javascript 了。内容类型应为 multipart/form-data,以便服务器知道它需要上传。

祝你好运!

关于javascript - PHP 回显 jQuery AJAX 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40062785/

相关文章:

javascript - 使用 jQuery 匹配选择选项

javascript - PHP + JS。 onClick 改变颜色并运行 php

javascript - Wordpress 图像选择器 - 在主题选项页面中使用

javascript - 不明白如何发送带有 get 请求参数的字符串?

javascript - jQuery 切换菜单下拉菜单

php - Flash对象使MySQL增加2

javascript - 无法弄清楚为什么我的脚本停止工作。 .

php - mysqli_stmt::bind_param():变量数量与准备好的语句中的参数数量不匹配

php - 在jquery中为ajax调用创建循环

jquery - 选择另一个选项卡时;先前选择的选项卡样式保持激活状态