IIS是否阻止了我的回调?

时间:2010-11-21 17:01:53

标签: jquery rest callback cross-domain jsonp

  • 当我在Cassini中尝试以下代码时,我得到了有效的回复。
  • 当我在浏览器中进行以下RESTful调用时,我看到了有效的回复 - http://api.brightcove.com/services/library?command=find_all_videos&page_size=1&video_fields=name&token=[token]
  • 但是当我在IIS 7.5中托管我的网站时,我的回调函数会收到null参数。

我的问题:

  

IIS 7.5是否会阻止   响应?


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="http://code.jquery.com/jquery-1.4.2.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        function validateReadToken() {
            $.getJSON("http://api.brightcove.com/services/library?command=find_all_videos&page_size=1&video_fields=name&token=[token]",
                function (data) {
                    alert(data.items.length);
                }
            );
        }

        $(document).ready(function () {
            $("a").click(function (event) {
                validateReadToken();
            });
        });    
    </script>
</head>
<body>
    <a href="javascript:void(0)">Test</a>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

可能值得一读:http://support.brightcove.com/en/docs/using-xmlhttp-make-calls-proxy

我不是AJAX专家,而是在您自己的IIS服务器上托管您的网站,然后针对brightcove提出服务请求似乎属于跨域问题的保护范围。

也许尝试服务器端代理将是前进的方向。

干杯, 丹

答案 1 :(得分:0)

感谢大家的帮助。

确实,我需要注意我正在尝试提出跨域请求。

要解决这个限制,我需要使用JSONP。


新守则:     

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="http://code.jquery.com/jquery-1.4.2.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        function validateReadToken() {
            var url = 'http://api.brightcove.com/services/library?command=find_all_videos&page_size=1&video_fields=name&token=[token]';
            $.getJSON(url + "&callback=?", function (data) {
                alert(data.items.length);
            });
        }

        $(document).ready(function () {
            $("a").click(function (event) {
                validateReadToken();
            });
        });    
    </script>
</head>
<body>
    <a href="javascript:void(0)">Test</a>
</body>
</html>