Firefox和Chrome上的jQuery Ajax问题,Opera(适用于Safari)

时间:2011-11-07 07:58:27

标签: jquery ajax firefox google-chrome browser

我有一个带有jQuery的小代码HTML。在我的代码中,我调用一个简单的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,我得到了准确的结果:$ .get的base64字符串和$ .ajax的json 但是使用Firefox我无法收到任何内容虽然响应代码是&#34; 200 OK&#34;但是正文确实包含了任何内容。

2 个答案:

答案 0 :(得分:1)

这是因为same origine policy。您无法使用ajax请求加载其他网站内容。如果你想这样做,你必须使用JSONP。或者您可以使用服务器端代理。

答案 1 :(得分:0)

您可以使用firefox firebug for chrome inspect element来查找有关错误的更多信息