Ответ 1
Добавьте свойство "Access-Control-Allow-Origin": "*" в ваш вызов writeHead():
res.writeHead(200, {
"Content-Type": "application/json",
"Access-Control-Allow-Origin": "*"
});
Я установил NodeJS и возвратил данные, когда я просматриваю URL-адрес: http://184.106.206.235
Однако, когда я пытаюсь вызвать этот URL-адрес с помощью $.getJSON
, обратный вызов показывает null
для переменной data
и "success"
для переменной textStatus
.
Я предполагаю, что это может быть кросс-доменная вещь, но я удивлен, что textStatus
говорит "success"
, если это дело.
В случае, если это полезно, здесь сервер JS:
http.createServer(function(req, res){
var output = {message: "Hello World!"};
var body = JSON.stringify(output);
res.writeHead(200, {'Content-Type': 'application/json', 'Content-Length': body.length});
res.end(body);
}).listen(80, "184.106.206.235");
Любые идеи?
Добавьте свойство "Access-Control-Allow-Origin": "*" в ваш вызов writeHead():
res.writeHead(200, {
"Content-Type": "application/json",
"Access-Control-Allow-Origin": "*"
});
Просто примечание для тех, кто имеет ту же проблему, решение выше работало для меня с одним незначительным изменением:
"Content-Type": "application/json"
Не "текст/json".
Спасибо за решение! Это сводило меня с ума.
если вы используете express framework, вы можете попробовать одно из следующих:
1. res.contentType('json');
, чтобы установить тип содержимого.
2. res.send({ some: 'json' });
, который установит тип содержимого и проанализирует его для вас.
3. res.json({ user: 'tj' });
возможно, лучший способ сделать это.
надеюсь, что это поможет:)