2015-12-29 2 views
1

У меня есть сервер Node, работающий на одной веб-странице. Эта страница имеет контактную форму с кнопкой отправки.отправьте запрос ajax на узел, ответ не определен

Если я нажимаю отправить, следующий код будет работать:

$('.contactsend').click(function(){ 
    $.ajax({ 
     method: "GET", 
     url: "http://127.0.0.1:3000/contact", 
     dataType: "jsonp" 
    }) .done(function(data) { 
      alert(data); 
     }) 
     .fail(function() { 
      alert("error"); 
     }) 
     .always(function() { 
      alert("complete"); 
     }); 
}) 

Это далеко кажется ОК, страница будет достигнута.

Это то, что промежуточное делает:

router.get('/', function(req, res, next) { 
    res.send({test:'test'}) 
    //res.send('test') 
}); 

После отправки этого веб-страница показывает следующее сообщение:

Uncaught SyntaxError: Unexpected token : 

Если я не отправить json, но строка вместо этого, сообщение например

Uncaught ReferenceError: test is not defined 
+1

там было что-то возникают проблемы с ответом без стандартов. вы можете использовать 'res.json' вместо' res.send'. –

+0

Я изменил свой 'res.send' на' res.jsonp', который сработал. Если я использую 'dataType:" json "' Меня беспокоит 'access origin' -peep- – Randy

+0

, вы можете отправить ответ без изменения типа ответа, но вы должны заменить специальные символы, но это не так. –

ответ

3

Клиент ожидает JSONP, но вы отправляете JSON.

Попробуйте это:

router.get('/', function(req, res, next) { 
    res.jsonp({test:'test'}); 
}); 
+0

Спасибо, я сделал это как можно скорее , – Randy

1

Если вам не нужно преодолевать междоменные ограничение, вы можете использовать res.json(). Попробуйте:

router.get('/', function(req, res, next) { 
    res.json({test:'test'}); 
}); 

И изменить ajax.dataType к json:

$.ajax({ 
    method: "GET", 
    url: "http://127.0.0.1:3000/contact", 
    dataType: "json" 
    // ... 
+0

Дает тот же результат :( – Randy

+2

вам нужно изменить тип данных ajax на 'json' слишком –

+0

Спасибо, что это действительно нужно, но тогда меня беспокоит материал' access origin' – Randy

Смежные вопросы