.ajax 호출을 사용하여 jQuery를 사용하여 bit.ly URL 단축 서비스를 호출하려고합니다.jQuery .ajax에서 bit.ly를 호출하면 FF 또는 Chrome이 아닌 IE에서 결과가 반환됩니다.
업데이트 이것이 도메인 간 보안 문제일까요? 나는 bit.ly
<html><head>
<script type="text/javascript" src="http://www.twipler.com/settings/scripts/jquery.1.4.min.js"></script>
<script type="text/javascript">
jQuery.fn.shorten = function(url)
{
var resultUrl = url;
$.ajax(
{
url: "http://api.bit.ly/shorten?version=2.0.1&login=twipler&apiKey=R_4e618e42fadbb802cf95c6c2dbab3763&longUrl=" + url,
async: false,
dataType: 'json',
data: "",
type: "GET",
success:
function (json) { resultUrl = json.results[url].shortUrl; }
});
return resultUrl;
} ;
</script></head><body>
<a href="#"
onclick="alert($().shorten('http://amiconnectedtotheinternet.com'));">
Shorten</a> </body> </html>
이 IE8에서 작동하지만 파이어 폭스 (3.5.9)에서 작동하지 않습니다도 크롬에 mysite.com
에서 전화를 만들고있어. 두 경우 모두 'json'은 null입니다. 크롬에서
GET http://api.bit.ly/shorten?ver..[SNIP]..dtotheinternet.com HTTP/1.1
Accept: application/json, text/javascript, */*
Accept-Language: en-US
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0;
SLCC2; .NET CLR 2.0.50727; Media Center PC 6.0; InfoPath.2;
.NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
Host: api.bit.ly
Connection: Keep-Alive
헤더 IE8
에서헤더
GET http://api.bit.ly/shorten?versio..[SNIP]..nectedtotheinternet.com HTTP/1.1
Host: api.bit.ly
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5
(KHTML, like Gecko) Chrome/4.1.249.1045 Safari/532.5
Origin: file://
Accept: application/json, text/javascript, */*
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
그래서 유일한 명백한 차이가 크롬 보내는 것입니다 "원산지 : 파일 : //"내가 어떻게 아무 생각도 없어 그것을 그만 두십시오.
현실 세계에서는 ** 절대 **해야합니다. 브라우저에서 단축을하면 API 키가 전 세계에 노출됩니다. 이러한 API 키를 사용하면 누구나 사용자를 대신하여 단축 할 수 있습니다. 비밀번호와 마찬가지로 API 키와 OAuth 토큰을 항상 처리해야합니다. 자세한 내용은 [우수 사례] (http://dev.bitly.com/best_practices.html) 문서를 참조하십시오. – SeanOC