크로스 도메인 아약스를 사용하여 전체 HTML 페이지 코드를 가져 오지만 항상 실패한 마사지를 회상합니다.jsonp를 사용하여 전체 html 코드를 경고하는 방법?
consolelog : "catch되지 않은 구문 에러 : 예기치 않은 토큰 <"
이 내 아약스 기능입니다.
function t(){
var url = document.getElementById("url").value;
$.ajax({
url: 'https://www.google.com/',
type: 'GET',
crossDomain: true,
data:'',
dataType: 'jsonp',
success: function() { alert("Success"); },
error: function() { alert('Failed!'); },
});
}
ps. 이 문제를 해결하기 위해 "Access-Control-Allow-Origin"방법을 사용하고 싶지 않습니다.
누구나 답변 해주세요. plz 내게 말해주세요.
!! 업데이트 !!
프록시를 사용하여이 문제를 해결했습니다.
먼저 프록시 파일을 만들어야합니다. 예를 들어 PHP를 사용합니다.
proxy.php
<?php
$url ='https://www.google.com/searchbyimage?site=search&sa=X&image_url=http://kingofwallpapers.com/apple/apple-015.jpg';
if($_GET['uri']=='')
echo file_get_contents($url);
else
echo file_get_contents($_GET['uri']);
?>
test.html를
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.12.4.min.js"></script>
</head>
<script type="text/javascript">
//var NewArray = data.toString().split("=");
function t(){
\t $.get("proxy.php?uri=", function(data) {
\t alert(data);
\t x(data);
\t }); \t
}
function x(data){
\t $.get("proxy.php?uri="+data.toString().split('"')[5], function(data2) {
\t alert("Data Loaded: " + data2);
\t });
}
</script>
<body onload="t()">
</body>
</html>
작업 보인다! 하지만 새로운 문제가 발생했습니다. Google 서버에서 오류가 발생했습니다. Google 이미지 검색을 방문하는 데 아약스를 사용할 수 없습니다. 403 오류 또는 302 응답이 응답합니다.
PS.Maybe 나는 구글 API 또는 I 추가 손실 코드를 필요하십니까?
들으 모두 :)
성공 함수를 다음과 같이 변경하고 어떤 일이 발생했는지 알려주세요. success : function (data) {alert (data); }, – Jay
jsonpurl + '? callback = anycallbackfunction' –
@Jay 작동하지 않았습니다. '( – MIKE