Я пытался использовать JSONP для получения объекта JSON с сервера через вызов на стороне клиента (через другой порт). Однако, поскольку мой сервер реализован в javascript с использованием Node.js и Express, я не смог найти много информации о JSONP с Javascript на сервере, так как большинство сайтов, которые я обнаружил, использовали php для серверного кода.
Я полагаю, что проблема заключается в том, как я настраиваю URL в отношении обратного вызова, на что я немного неясен, потому что это плохо для меня.
На сервере:
//Setting up server stuff
var express = require('express'),
app = express.createServer();
app.use(express.logger());
//Making a connection to the mongoDB to get the data that I want to display in the JSON object
new Db('prism',
new Server("127.0.0.1", 27017, {auto_reconnect: false}), {}).open(function(err, db) {
app.get('/getData', function(req, res) {
console.log('JSONPCALLBACK CALLED WITH RETURNDATA PASSED IN; SERVER SIDE');
if (typeof callback == 'function') {
console.log('callback is defined');
callback(returnData);
}
else {
console.log('callback is not defined');
}
}
});
А на клиенте:
$.ajaxSetup({ cache : false });
$.getJSON('http://127.0.0.1:1337/getData&callback=?', function(rtndata) {
console.log('SUCCESS');
console.log(rtndata);
});
, встроенный в стандартные теги.
Но я получаю ошибку:
GET http://127.0.0.1:1337/getData&callback=jQuery16108897686484269798_1311007334273?_=1311007334342 404 (Not Found)
Сервер находится на порту 1337, а клиент работает через MAMP на localhost: 8888. Я не уверен, что это даже проблема, связанная с локальным хостом, поскольку я пытался запустить эту настройку в течение нескольких дней.
Я полагаю, что проблема связана с тем, что я не записал эту строку, написанную на php, в мой серверный Javascript. Большинство примеров JSONP, которые я нашел, имели что-то вроде этого. Но я не уверен.
if ($GET['callback'] != '')
$json = $GET['callback']."( $json )";
return $json;
Любая помощь будет принята с благодарностью. Я заранее прошу прощения за то, что я был очень многословен.
Bests,
Цун