JSONP - вернуть HTML - PullRequest
       12

JSONP - вернуть HTML

4 голосов
/ 27 декабря 2011

Я использую JSONP с кодом:

<script>
$.ajax({
    url:"http://localhost:8080/pool/main/?pool=abcd",
    dataType: 'JSONP',
    success:function(response){
        $('#pool').append(response);
    },
    error:function(){
        alert("ERROR");
        },
});
</script>

Я должен использовать JSONP, потому что мне нужен кросс-домен ajax

В ответе моего приложения от "http://localhost:8080/pool/main/?pool=abcd "- это HTML-код.

Я хотел отобразить этот код на своей странице, но есть ошибка, потому что, как я предполагаю, я не могу вернуть html.

ОШИБКА -я имею в виду - он выдает мне этот код error:function(){ alert("ERROR"); }, но я вижу в firebug, что ответ с моей страницы http://localhost:8080/pool/main/?pool=abcd в порядке.Но от души.я не знаю, как поставить ответ на элемент html.

Мой вопрос - МОГУ Я или Я НЕ МОГУ.

Если я могу - как это сделать?

Ответы [ 3 ]

1 голос
/ 27 декабря 2011

Вы можете отобразить HTML-текст ответа на своей странице. Вам просто нужно добавить значение ответа к любому элементу HTML, например <div> или <span>.

Вы также можете сделать это с помощью следующего кода.

var URL = "http://localhost:8080/pool/main/?pool=abcd";
new Request({
    method: 'POST',
    url: URL,
    assign: 'true',
    onComplete: function(responseText) {
        $('#pool').innerHTML = responseText;
    }
}).send();

Здесь ваш responseText будет установлен на элемент #pool.

1 голос
/ 27 декабря 2011

Если вы хотите использовать JSONP , вам нужно сгенерировать фрагмент скриптов, вызывающих метод с возвращенными данными.Если вы хотите получить фрагмент HTML, ваш URL должен выводить код, подобный следующему:

callFunction("<div>abc</div>");
0 голосов
/ 27 декабря 2011

да. JSONP - это тип данных, в котором ответ отправляется в качестве аргумента функции. Ответ доступен в этой функции.

$.ajax({
    url:"http://localhost:8080/pool/main/?pool=abcd",
    dataType: 'JSONP',
    success:function(response){
     callFunction(response);
    },
    error:function(){
        alert("ERROR");
        },
});

function callFunction(data){
 $('#pool').innerHTML = data;
}
...