猿问

Electron AJAX 请求返回原始 PHP

我正在用 Electron 开发一个自助服务终端应用程序。目前,我坚持使用本机 Javascript 代码(没有 JQuery)向服务器发出 AJAX 请求。每次我发出 AJAX 请求时,它总是返回原始 PHP 代码。这是我的项目目录:


SelfService

|- script

   |- login.js

|- lib

   |- userAuth.php

|- node_modules

|- index.html

|- index.js

|- package.json

|- package-lock.json

在我的 javascript 中,我尝试将“Content-Type”设置为“application/json”,或者按照网络上的另一个 AJAX 请求示例,在发送之前将其设置为“application/x-www-form-urlencoded” XMLHttpRequest,但它们都返回原始 PHP 代码。


至于服务器端,我已经将标题设置为“Content-Type: application/json”并使用 json_encode 作为结果。


旁注:我将 Electron 安装在与 Web 服务器不同的驱动器上。我(C:\wamp)在D:Drive上安装 Electron 时在默认位置安装了 WAMP (我想知道这是否真的很重要)


索引.html:


<body>

    <input type="text" id="input_id" value="" />

    <button onclick="authenticateID();">Click to authenticate ID</button>

    <div id="response"></div>

</body>

/script/login.js:


function authenticateID () {

    var xhr = new XMLHttpRequest();

    var url = 'lib/userAuth.php'

    var params = 'id=' + document.getElementById('input_id').value;


    xhr.open('POST', url, true);

    xhr.setRequestHeader('Content-Type', 'application/json');

//    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');


    xhr.onload = function () {

        if (this.readyState == 4 && this.status == 200) {

            var xhrResult = JSON.parse(xhr.responseText);


            var responseContainer = document.getElementById(response);

            responseContainer.innerHTML = xhrResult.isValidID;

        }

    }


    xhr.onerror = function () { alert('Something went wrong') }

    xhr.send(params);

}

/lib/userAuth.php:


<?php

header('Content-Type: application/json');

$result['isValidID'] = (!empty($_POST['id'])) ? '1' : '0';

echo json_encode($result);

?>

如果用户在文本框中输入 ID,我希望输出为“1”或“0”,但是当我使用 显示 xhr.responseText 时alert(xhr.responseText),它返回了整个原始 PHP 代码lib/userAuth.php


编辑:现在这是我犯的一个巨大错误。我虽然 Electron 有某种可以处理 PHP 文件的内置 Web 服务器,所以我将我的 PHP 文件放在项目文件夹中,该文件夹与 Web 服务器位于不同的位置。现在我已经将 PHP 脚本分离到 Web 服务器中,我应该如何设置 URL 中的 URL var url = 'lib/userAuth.php'?我试过了,localhost/SelfService/lib/userAuth.php但在错误日志中,它说ERR:FILE_NOT_FOUND


婷婷同学_
浏览 92回答 1
1回答

扬帆大鱼

服务器返回 PHP 代码的唯一原因是您的服务器配置不正确。检查您的服务器文件是否位于 localhost 服务器文件夹中。
随时随地看视频慕课网APP
我要回答