Как вызвать внешний url в jquery?

Я пытаюсь поставить комментарии на стене Facebook, используя jquery.

Но мой вызов ajax не предусматривает внешнего URL-адреса.

может ли кто-нибудь объяснить, как мы можем использовать внешний url с jquery?

ниже мой код:

var fbUrl="https://graph.facebook.com/16453004404_481759124404/comments?access_token=my_token"; $.ajax({ url: fbURL , data: "message="+commentdata, type: 'POST', success: function (resp) { alert(resp); }, error: function(e){ alert('Error: '+e); } }); 

его давая xmlhtttprequest ошибку.

    Все эти ответы неверны!

    Как я уже сказал в своем комментарии, причина, по которой вы получаете эту ошибку, потому что URL-адрес терпит неудачу с « той же политикой происхождения », но вы все еще можете использовать функцию AJAX для доступа к другому домену, см. Ответ Ника Кервера на этот похожий вопрос :

    Вам нужно вызвать JSONP-поведение с помощью $ .getJSON (), добавив & callback =? на querystring, вот так:

     $.getJSON("http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&titles="+title+"&format=json&callback=?", function(data) { doSomethingWith(data); }); 

    Вы можете проверить его здесь.

    Без использования JSONP вы попадаете в политику одного и того же происхождения, которая блокирует XmlHttpRequest от получения любых данных.

    Имея это в виду, следующий код должен работать:

     var fbURL="https://graph.facebook.com/16453004404_481759124404/comments?access_token=my_token"; $.ajax({ url: fbURL+"&callback=?", data: "message="+commentdata, type: 'POST', success: function (resp) { alert(resp); }, error: function(e) { alert('Error: '+e); } }); 

    JQuery и PHP

    В файле PHP «contenido.php»:

      

    В html:

       Get Google 

    это проблема межсайтового скриптинга . Общие современные браузеры не позволяют отправлять запрос на другой URL-адрес.

    google те же правила происхождения javascript

    в двух словах, URL-адрес, который вы пытаетесь использовать, должен иметь один и тот же корень и протокол. поэтому http://yoursite.com не может получить доступ к https://yoursite.com или http://anothersite.com

    вы абсолютно ДОЛЖНЫ обойти эту защиту (которая находится на уровне браузера, как указывала галими), рассмотрите модуль ProxyPass для вашего любимого веб-сервера.

    Я думаю, что единственный способ – использовать код внутрисетевого PHP, такой как MANOJ и Fernando.

    curl post / get in php file на вашем сервере -> вызвать этот php-файл с помощью ajax

    Файл PHP можно сказать (fb.php):

     $commentdata=$_GET['commentdata']; $fbUrl="https://graph.facebook.com/16453004404_481759124404/comments?access_token=my_token"; curl_setopt($ch, CURLOPT_URL,$fbUrl); curl_setopt($ch, CURLOPT_POST, 1); // POST data here curl_setopt($ch, CURLOPT_POSTFIELDS, "message=".$commentdata); // receive server response ... curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $server_output = curl_exec ($ch); echo $server_output; curl_close ($ch); 

    Вместо использования AJAX GET

     fb.php?commentmeta=your comment goes here 

    с вашего сервера.

    Или сделайте это с помощью простого HTML и JavaScript с сервера externel:

     Message:    

    Привет url должен вызывать функцию, которая в ответ даст ответ

     $.ajax({ url:'function to call url', ... ... }); 

    попробуйте использовать API-интерфейс API / call API

    Выполните следующие простые шаги, которые вы сможете получить.

    Шаг 1. Создайте одну внутреннюю функцию getDetailFromExternal в своем конце. step 2. В этой функции вызовите внешний url, используя cUrl, как показано ниже.

      function getDetailFromExternal($p1,$p2) { $url = "http://request url with parameters"; $ch = curl_init(); curl_setopt_array($ch, array( CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true )); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); $output = curl_exec($ch); curl_close($ch); echo $output; exit; } 

    Шаг 3. Вызовите эту внутреннюю функцию из своего внешнего интерфейса, используя javascript / jquery Ajax.

    Давайте будем гением компьютера.