如何判断我的httprequest所说的推荐链接来自哪里?

时间:2015-06-16 15:16:58

标签: javascript youtube xmlhttprequest

我向youtube发送xmlhttprequest以获取一些视频。我已经去了google开发人员的控制台,并设置了一个带有WORK URL的api密钥,我请求连接到它。当我尝试从WORK URL运行脚本时,我得到了一个不允许的' ipreferrer'错误,即使我在我的api密钥上指定了该URL。

但是当我将api密钥连接到MY OWN PERSONAL URL并从该URL运行相同的脚本时,它可以正常工作。因此,当它从WORK URL运行时,它必须向youtube发送错误的推荐网址。

问题是,我怎么能告诉我的xmlhttprequest告诉你它来自哪个推荐网址?

我的代码如下:

function createCORSRequest(myurl, cb)
        {
           var xmlhttp;
           if (window.XMLHttpRequest){
               xmlhttp=new XMLHttpRequest();}
           else{
               xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}

            xmlhttp.onreadystatechange=function(){
                if (xmlhttp.readyState==4 && xmlhttp.status==200){
                    if( typeof cb === 'function' )
                        cb(xmlhttp.responseText);
                }
            }

           xmlhttp.open("GET",myurl,true);
           xmlhttp.send();

        }


        function buildVideoMenu()
        {
            openDiv = true;
            mainVideoTarget = 'main_video';
            playlistID = 'PLAg45-Ox3WR4gODmcAmIYHVvCpngXcCTZ';
            menuDiv = 'video_menu_images';
            thumbnailDiv = 'thumb';
            APIKey = 'AIzaSyA__3pvHG_qFUVUGs3JJDvZfybnOLSENUI';
            url = 'https://www.googleapis.com/youtube/v3/playlistItems?' +
                    '&part=snippet' +
                    '&maxResults=25' +
                    '&playlistId=' + playlistID +
                    '&key=' + APIKey;
            //alert(url);
            createCORSRequest(url, function(srchJSON)                       //Get JSON for search
            {
                myDivHTML = '';
                myDiv = document.getElementById("video_menu_images");               //get div in variable
                console.log("YouTube returned the json code: " + srchJSON);

                srchObj = JSON.parse(srchJSON);                             //parse JSON for playlistItems
                for(i=0;i<srchObj.items.length;i++)                         //For items in srchObj.items:
                {
                    console.log("item number " + i);
                    if(srchObj.items[i].snippet.thumbnails!=undefined)
                        {
                        if(openDiv)
                        {
                            myDivHTML += '<div id = "tnvertblock">';
                        }
                        myDivHTML += '  <div class = "' + thumbnailDiv + '">';
                        //console.log(srchObj.items[i].snippet.title);
                        vidFrameURL = 'https://www.youtube.com/embed/' + srchObj.items[i].snippet.resourceId.videoId;
                        //console.log("url = " + vidFrameURL);
                        imgUrl = srchObj.items[i].snippet.thumbnails.default.url;   //get thumbnail image url
                        myDivHTML += '          <a href = "' + vidFrameURL + '" target = "' + mainVideoTarget +'">';
                        myDivHTML += '          <img width = "120" height = "90" class = "thumbnail"  src = "' + imgUrl + '" />';
                        myDivHTML += '          </a>';//            Put in the item.snippet.thumbnails.default.url (its own div)
                        myDivHTML += '  </div>';                        //close thumbnail div
                        if(!openDiv)
                        {
                            myDivHTML += '</div>';
                        } 
                        openDiv = !openDiv;
                    }
                }
                //alert(myDivHTML);
                myDiv.innerHTML = myDivHTML;                        
            });

        }


        buildVideoMenu();

更新:为了澄清我的问题,这里是控制台开发人员页面的屏幕截图,其中包含一个解释: console screenshot

0 个答案:

没有答案