#php #node.js
#php #node.js
Вопрос:
Предположим, что есть два сервера serv1 и serv2. я пытаюсь получить xmlhttprequest из php в serv1 на узловом сервере в serv2. Мой код выглядит так:
var express = require('express');
var app = express();
var cors = require('cors');
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
app.use(function(req, res, next) {
res.setHeader('Access-Control-Allow-Origin', 'serv1');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With');
res.setHeader('Access-Control-Allow-Credentials', true);
next();
});
app.use(cors());
app.get('/session', function(req, res) {
var u = "serv2/somephp.php";
var xhr = new XMLHttpRequest();
xhr.open("GET", u, true);
xhr.withCredentials = true;
xhr.onload = function() {
console.log(xhr.responseText);
};
xhr.send();
})
app.listen(8165, function() {
console.log('Express File Uploading server listening on port 8165');
})
Комментарии:
1. Настройки источника Cors должны быть реализованы на php, поскольку он обслуживает запрос от nodejs.
Ответ №1:
XMLHttpRequest не существует в node. Просто выполните простой http-запрос get с помощью модуля запроса :
var request = require("request");
request.get({url: "https://www.example.com/a"},function(err, response, body){
});
Кроме того, домен должен быть определен в вашем URL:
var u = "serv2/somephp.php";
Правила CORS должны быть установлены на целевом сервере (php server)