#node.js #ajax #request
#node.js #ajax #запрос
Вопрос:
Пытаюсь отправить JSON-объект через мой сайт с помощью NodeJS — Request.
var options = {
uri: 'http://localhost/test.php',
method: 'POST',
json: {
"longUrl": "http://www.google.com/"
}
};
request(options, function (error, response, body) {
if (!error amp;amp; response.statusCode == 200) {
console.log(body)
}
});
На моем test.php скрипт, я просто записываю переменные $ _REQUEST через json_encode в файл отладки:
<?php
file_put_contents('test.debug.txt', "TEST: " . json_encode($_REQUEST) . json_encode($_POST));
По-видимому, $ _POST ничего не содержит. На первом этапе отладки я записал параметры в свой URL, чтобы проверить, работает ли PHP-скрипт:
var options = {
uri: 'http://localhost/test.php?debug=1',
method: 'POST',
json: {
"longUrl": "http://www.google.com/"
}
};
request(options, function (error, response, body) {
if (!error amp;amp; response.statusCode == 200) {
console.log(body)
}
});
И это дополнительное debug=1
решение сделало так, что я могу видеть {‘debug’: 1} в качестве выходных данных в моем отладочном файле. Итак, мой вопрос прямо сейчас: что случилось с переменными POST?
Вывод из запроса NodeJS:
0|server | request:
0|server | Request {
0|server | _events:
0|server | [Object: null prototype] {
0|server | error: [Function: bound ],
0|server | complete: [Function: bound ],
0|server | pipe: [Function],
0|server | data: [Function],
0|server | end: [Function] },
0|server | _eventsCount: 5,
0|server | _maxListeners: undefined,
0|server | method: 'POST',
0|server | body:
0|server | '{"longUrl":""http://www.google.com/"}',
Ответ №1:
Если вы используете request
пакет npm, правильный способ опубликовать json — (doc):
options = {
uri: 'http://localhost/test.php',
method: 'POST',
body: JSON.stringify({
"longUrl": "http://www.google.com/"
}),
json: true
}
Обновить:
Попробуйте это отправить как application/x-www-form-urlencoded
options = {
uri: 'http://localhost/test.php',
method: 'POST',
form: {
"longUrl": "http://www.google.com/"
}
}
Комментарии:
1.
request(options, function (error, response, body) {
Откудаrequest
берется в этой строке? пакет запроса npm?2. В основном это:
var request = require('request');
3. Возможно, ваш сервер не принимает
json
? Попробуйте обновить ответ4. Это потому, что я недавно попробовал тот же запрос через REST Client — который отлично работает с объектами JSON в виде строки
5. ваш журнал отладки завершен
request
?