#jquery #ajax #firefox #google-chrome #browser
#jquery — запрос #аякс #firefox #google-chrome #браузер #jquery #ajax
Вопрос:
У меня есть небольшой HTML-код с помощью jQuery. В моем коде я вызываю простой ajax-вызов. Это хорошо работает в Safari, но работало в Firefox и Chrome.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>untitled</title>
<meta name="generator" content="TextMate http://macromates.com/">
<meta name="author" content="Daniel">
<!-- Date: 2011-11-07 -->
<script type='text/javascript' src='http://media.smashingmagazine.com/themes/smashing/js/jquery-1.5.2.min.js?ver=3.1.3'></script>
<script type='text/javascript' src='http://media.smashingmagazine.com/themes/smashing/js/jquery-ui-1.8.2-min.js?ver=3.1.3'></script>
</head>
<script type="text/javascript">
var jwt = "";
var certUrl = "";
function getJwt() {
$.get(
"http://signerapp.appspot.com/signerapp",
function(data) { jwt = data;}
);
}
function checkAvailable() {
var postObject = {};
postObject.certUrl = certUrl;
postObject.jwt = jwt;
postObject.action = "available";
postObject.shortUrl = $('#shortUrl').attr('value');
$.ajax( {
url: "http://clickin-shorturl.appspot.com/urlshortener/v1/url",
type: "POST",
data: JSON.stringify(postObject),
success: function(data) { alert(data); }
});
}
$(document).ready(function() {
getJwt();
});
</script>
<body>
</br>
</br>
</br>
</br>
</br>
<h4>This is sample for creating url shortener</h4>
<p>Check available:</p>
<div>
<!-- Check availability-->
<table border="1" width="540" height="100%">
<!-- Check availability-->
<tr>
<td>
<form>
Action: <input type="textbox" id="action1" name="action1" value="available" disabled="disabled" size="20"></br>
Short URL: <input type="textbox" id="shortUrl" name="shortUrl" value="aaaa" size="20"></br>
<input type="button" id="checkButton" name="checkButton" value="Check Available" onClick="checkAvailable();"></br>
</form>
</td>
</tr>
<tr>
</table>
</div>
</body>
</html>
Проблема заключается в вызове $.get и $.ajax выше.
С Safari я получаю точный результат: строку base64 в $.get и json в $.ajax
Но с Firefox я ничего не могу получить, Хотя код ответа «200 OK», тело действительно содержало что угодно.
Ответ №1:
это из-за той же политики origine. вы не можете загрузить другой контент веб-сайта с помощью ajax-запроса. если вы хотите это сделать, вы должны использовать JSONP для этого. или вы можете использовать прокси-сервер на стороне сервера для этого.
Ответ №2:
вы можете использовать firebug в Firefox или элемент проверки Chrome, чтобы найти дополнительную информацию об ошибке