2014-02-19 3 views
0

этот вопрос находится в отношении к моему предыдущему вопросу, который до сих пор без ответа:Как использовать jsonop в JQuery AJAX при загрузке текстового файла

jquery ajax method is not Loading Text File

Я пытаюсь загрузить текстовый файл с в HTML-страницу с помощью JQuery ajax-метод, html и текст размещаются на локальном сервере. Как я должен назвать метод jsonp с обратным вызовом в этом случае?

Мой код

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> 
</script> 

<script language="javascript" type="text/javascript"> 
    $(document).ready(function() { 
     $("button").click(function() { 
     $.ajax({ 
    url:"http://localhost/demo_test.txt", 
    dataType: 'jsonp', 
    success:function(){ 

     alert("Success"); 
    }, 
    error:function(){ 
     alert("Error"); 
    }, 
}); 
      return false; 
     }); 
    }); 
</script> 
</head> 
<body> 

<div id="div1"><h2>Let jQuery AJAX Change This Text</h2></div> 
<button>Get External Content</button> 

</body> 
</html> 

Просьба предложить. Я получаю ошибку перекрестного домена каждый раз

+0

Вы сказали, что ваш HTML и TXT размещаются на одной и той же LocalServer, то нет никакой необходимости использовать JSONP, потому что они находятся в том же домене. Ну, может быть, вы просто имеете в виду, что они находятся на одном компьютере без http-сервера? – wander

ответ

0

Функция jQuery ajax может иметь междоменный запрос, который является jsonp, но вы не можете использовать его вот так!

на стороне сервера, что в ответ запрос JSONP на самом деле является Java-функции, например:

расслоение плотной файла:

$("button").click(function() { 
    $.ajax({ 
     url: 'http://xxx.xxx.com/yoururl', 
     dataType: 'jsonp', 
     success: function(data) { 
      console.log(data) 
     } 
}); 

на стороне сервера (PHP, например)

<?php 
    $fn = $_GET['callback'];//get the jquery callback parameter 
    $data = array("name"=>"name1", "age"=>12); //make a data object to pass it as a parameter! 
    echo $fn . "(" . json-encode($data) . ");"; // the response actually generate a javascript function! 
?> 

В вашем коде txt-файл не является допустимым ответом jsonp!

+0

так Как загрузить текстовый файл с jquery ajax? Я просто хочу реализовать пример кода из учебника http://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_ajax_ajax, но он не работает с тех пор –

+0

Итак, я начал получать данные текстового файла, но кнопка () страницы html все еще осталось в текстовом файле. Как удалить его –

0

ОК. я, наконец, получил это работает: Вот рабочий код:

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> 
</script> 

<script language="javascript" type="text/javascript"> 
<!DOCTYPE html> 
<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> 
</script> 
<script> 
$(document).ready(function(){ 
    $("button").click(function(){ 
    $.ajax({url:"http://localhost/demo_test.txt",success:function(result){ 
     $("#div1").html(result); 
    }}); 
    }); 
}); 
</script> 
</head> 
<body> 

<div id="div1"><h2>Let jQuery AJAX Change This Text</h2></div> 
<button>Get External Content</button> 

</body> 
</html> 

</script> 
</head> 
Смежные вопросы