Задать вопрос
@Otrivin
junior full-stack сисадмин

Как получить результаты ajax-запроса со стороннего сайта с помощью jsonp?

Здравствуйте!
На стороннем сайте есть форма, в которую вводятся определённого вида данные. Сервер принимает их, обрабатывает, а после выдаёт результат. Конструкция на этом стороннем сайте выглядит следующим образом:

<div class="panel-body">
		<form role="form">
			<label for="vin">VIN:</label> 				
			<input type="text" class="form-control" id="vin" placeholder="VIN" />

			<label for="regNumber">Гос.номер:</label> 				
			<input type="text" class="form-control" id="regNumber" placeholder="Гос.номер" /> 		

			<label for="BodyNumber">Номер кузова:</label>
			<input type="text" class="form-control" id="BodyNumber" placeholder="Номер кузова" /> 	

			<label for="FrameNumber">Номер рамы:</label>
			<input type="text" class="form-control" id="FrameNumber" placeholder="Номер рамы" /> 		
		</form> 
		<p></p>
		<div id="resultEAISTO"></div>
		<p></p>
		<button type="button" onclick="eaisto();" class="btn btn-block btn-primary ">Проверить</button>
	</div>

	<script type="text/javascript">
		function eaisto()
		{
		var vin = $('#vin').val();
		var regNumber = $('#regNumber').val();
		var BodyNumber = $('#BodyNumber').val();
		var FrameNumber = $('#FrameNumber').val(); 
			   $.ajax({
						type: "POST",
						url: "./services/poiskEAISTO.php",
						data: "vin="+vin+"&regNumber="+regNumber+"&BodyNumber="+BodyNumber+"&FrameNumber="+FrameNumber,
						// Выводим то что вернул PHP
						success: function(html) {
								$("#resultEAISTO").empty();
								$("#resultEAISTO").append(html);
						}
				});

		}
	</script>


Подскажите, пожалуйста, как мне обратиться к этой форме, передать данные, получить результат и отобразить его у себя? Пытался сделать через jsonp (как я понял, это наименее тернистый путь), создал для теста html-страничку со следующим кодом:

<html>
	<head>
	<meta charset="utf-8">
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
	</head>
	<body>
		<div class="panel-body">
			<form role="form">
				<label for="vin">VIN:</label> 				
				<input type="text" class="form-control" id="vin" placeholder="VIN" />

				<label for="regNumber">Гос.номер:</label> 				
				<input type="text" class="form-control" id="regNumber" placeholder="Гос.номер" /> 		
									 
				<label for="BodyNumber">Номер кузова:</label>
				<input type="text" class="form-control" id="BodyNumber" placeholder="Номер кузова" /> 	
									 
				<label for="FrameNumber">Номер рамы:</label>
				<input type="text" class="form-control" id="FrameNumber" placeholder="Номер рамы" /> 		
			</form> 
			<p></p>
			<div id="resultEAISTO"></div>
			<p></p>
			<button type="button" onclick="eaisto();" class="btn btn-block btn-primary ">Проверить</button>
		</div>

		<script type="text/javascript">
			function eaisto()
			{
			var vin = $('#vin').val();
			var regNumber = $('#regNumber').val();
			var BodyNumber = $('#BodyNumber').val();
			var FrameNumber = $('#FrameNumber').val(); 
				   $.ajax({
							type: "POST",
							url: "http://web-dk.ru/services/poiskEAISTO.php?callback=?",
							data: "vin="+vin+"&regNumber="+regNumber+"&BodyNumber="+BodyNumber+"&FrameNumber="+FrameNumber,
							dataType: "jsonp",
							// Выводим то что вернул PHP
							success: function(html) {
									$("#resultEAISTO").empty();
									$("#resultEAISTO").append(html);
									alert( "Отладка, прибыли данные: " + html );
							},
							error: function() {
									alert( "Беда, эггог" );
							}
					});
			}
		</script>
	</body>
</html>


После ввода VIN и нажатия кнопки "проверить" вываливается сообщение об ошибке (встроенное в error), и в консоли браузера вижу сообщение
SyntaxError: expected expression, got '<'
с указанием на
http://web-dk.ru/services/poiskEAISTO.php?callback=jQuery111209190400557866112_1441734625394&vin=здесь VIN, который мы вводили&regNumber=здесь гос.номер&BodyNumber=номер кузова&FrameNumber=номер рамы&_=1441734625396
При переходе по ссылке вижу следующий код в кодировке cp1251:

<div class="alert alert-success">ааЕ аЗаАаПаОаЛаНаЕаНаО аНаИ аОаДаНаОаГаО аПаАбаАаМаЕббаА</div>


Если перевести его в utf-8, то он примет читабельный вид:

<div class="alert alert-success">Не заполнено ни одного параметра</div>


В чём дело? Параметры не передаются? Как заставить код работать?

З.Ы. Не пинайте, я скорее верстальщик, нежели программист.
  • Вопрос задан
  • 885 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@dmitryKovalskiy
программист средней руки
А вы на 100% уверены что сайт не использует защиту от CSRF?
Ответ написан
@maxloyko
Если я не ошибаюсь невозможно сделать jsonp POST запрос
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
Wanted. Москва
от 250 000 до 400 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
26 дек. 2024, в 21:50
5000 руб./за проект
26 дек. 2024, в 21:12
2500 руб./за проект
26 дек. 2024, в 21:01
10000 руб./за проект