Я пытаюсь сделать файл .js запустим .php-файл в той же папке. Я использую XMLHttpRequest
. В настоящее время сценарий .js работает с узловым сервером.
Я пробовал разные вещи для URL-адреса, чтобы получить .php-файл.
my_file.php
приводит к "404 (Not Found)"
//InsertAbsolutePathHere/tests/my_file.php
приводит к net::ERR_NAME_NOT_RESOLVED
file:///InsertAbsolutePathHere/tests/my_file.php
приводит к тому, что Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
Если я использую первый вариант (относительный путь), я замечаю, что окончательный URL-адрес начинается с « localhost:3000/tests
». Я могу просмотреть файл в Chrome просто отлично, когда я использую абсолютный путь, но версия localhost:3000/tests
показывает мне сообщение « Cannot GET
». Тем не менее, если я использую относительный путь для index.html
или любой другой html-страницы, мой код, похоже, отлично подходит для файла. Он отображает только 404, когда это относительный путь к файлу php.
Вот моя файловая организация:
Я чувствую, что мой относительный путь не работает, потому что я запускаю сервер узлов, и что сервер не играет хорошо с файлами php. Может кто-то подтвердить это?
Как я могу загрузить свой PHP-скрипт? Кроме того, какая разница между двумя параметрами абсолютного пути? Почему они возвращают разные сообщения об ошибках?
Заранее спасибо!
Изменить: Вот мой код (часть которого была взята из другого сообщения)
function drawError() { var container = document.getElementById('output'); console.log('Bummer: there was an error!'); } // handles the response, adds the html function drawOutput(responseText) { console.log(responseText); } function getRequest(url, success, error) { var req = false; try{ // most browsers req = new XMLHttpRequest(); } catch (e){ console.log("XML request failed."); return false; } if (!req) return false; if (typeof success != 'function') success = function () {}; if (typeof error!= 'function') error = function () {}; req.onreadystatechange = function(){ if(req.readyState == 4) { return req.status === 200 ? success(req.responseText) : error(req.status); } } req.open("GET", url, true); req.send(null); return req; } var urlString1 = 'my_file.php?' + encodeURIComponent('game_id') + '=0&' + encodeURIComponent('client_timestamp') + '=10'; //var urlString2 = '//Users/Emma/Documents/tests/my_file.php'; //var urlString3 = 'file:///Users/Emma/Documents/tests/my_file.php'; console.log(urlString); var urlRequest = getRequest( urlString, // URL for the PHP file drawOutput, // handle successful request drawError // handle error ); console.log(urlRequest);