JSONP как организовать получение html в callback?

Добрый день, ситуация следующая: Я хочу строить форму регистрации на стороннем своем сайте. Поскольку не хочу возится с CORS решил делать запросы через jsonp get. Сама апишка принимает данные в контроллер. В зависимости от них, строит форму и выводит её через view вместе со всей layout Html страницей. Сама форма передает уже данные на регистрацию(передача данных по jsonp без ответа через колбек работает исправно).

Подключение скрипта на стороннем сайте
<script id="jsonp_script" src="https://somesite.com/assets/js/api/test.js?login=1&email=1&password=1"></script>


Сам запрос на контроллер
var res = $.ajax({
      url: "https://somesite.com/test",
      method: "GET",
      data: fields, //массив из полей, которые были true 
      dataType: "jsonp",
      jsonp: "callback",
      contentType: "application/json; charset=utf-8",
          success:function(response){
              $("#some").append(response);;
          }
    });    
    
    res.done(function( msg ) {
        alert(msg);
    });


Но при получении получаю ошибку
SyntaxError: expected expression, got '<'

Я посмотрел по дебагеру и на что ссылается. Там обычный html код и ругается на начальную первую кавычку. Т.е. сам ответ уже приходит, но как начинает втыкать, так сразу кидает ошибку. Как можно Html страницу все таки получить ?
  • Вопрос задан
  • 635 просмотров
Пригласить эксперта
Ответы на вопрос 2
DexterHD
@DexterHD
Software Engineer, Teamlead, CTO
Я правильно понимаю, в response приходит HTML? Если это так, то в этом и есть проблема.
Вы указали что ждете от сервера ответ в формате jsonp, а получаете при этом HTML.
Если нужно получить HTML, в dataType должно быть указано значение html

Вообще я бы порекомендовал заморочится с CORS, там все не так сложно, как может показаться.
https://learn.javascript.ru/xhr-crossdomain
Ответ написан
Immortal_pony
@Immortal_pony Куратор тега JavaScript
Возвращайте json-объект со стороны сервера, а не голый html.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы