Вызов внешнего URL через $ .ajax в теме WordPress - PullRequest
2 голосов
/ 28 декабря 2010

Мое приложение WordPress размещено на URL http://127.0.0.1/wordpress/, и я добавил следующий скрипт в заголовок WordPress, чтобы получить какой-то токен, но он не дает никакого токена

Я скопировал этот URL (http://127.0.0.1:8090/sample/sample/getToken) и открыть в новой вкладке, он успешно возвращает токен, но когда я вызвал его с помощью $ .ajax, он не возвращает мне токен

  <script>   
   $().ready(function(){
      $("#signIn").click(function(){
                    alert("Display Alert Properly");
            $.ajax({ 
            type: "POST",
            url: "http://127.0.0.1:8090/sample/sample/getToken",
            contentType: "text/html",
            success: function(token)  { 
                window.open("https://api.linkedin.com/uas/oauth/authorize?oauth_token=" + token, "_self", "");  });
        });

    });

Ответы [ 4 ]

1 голос
/ 28 декабря 2010

Попробуйте и посмотрите, какую ошибку вы получите, это поможет вам увидеть актуальную проблему

$().ready(function(){
      $("#signIn").click(function(){
                    alert("Display Alert Properly");
            $.ajax({ 
            type: "POST",
            url: "http://127.0.0.1:8090/sample/sample/getToken",
            contentType: "text/html",
            success: function(token)  { 
                window.open("https://api.linkedin.com/uas/oauth/authorize?oauth_token=" + token, "_self", "");  
            },
            error:function (xhr, ajaxOptions, thrownError){
                    alert(xhr.statusText);
                    alert(thrownError);
                }    
            });
        });

    });
1 голос
/ 28 декабря 2010

Вы не можете напрямую обращаться к внешним ресурсам через Javascript из-за Одинаковой политики происхождения , реализованной в современных браузерах.Однако есть несколько решений.

Если удаленный сайт предлагает JSONP , вы можете использовать его для загрузки внешних ресурсов, но если этого не произойдет, вы не сможете получить доступнепосредственно к этим ресурсам.

Если удаленная конечная точка не предлагает JSONP, вам потребуется прокси-скрипт на вашем собственном сервере, который принимает запрос AJAX, выполняет запрос к внешней конечной точке и передает ответ на ваш Javascriptприложение.Обязательно обеспечьте безопасность такого сценария, чтобы он принимал запросы только к благословенным конечным точкам, иначе у вас будет неприятная дыра в безопасности.

1 голос
/ 28 декабря 2010

Ajax подчиняется той же политике безопасности источника.

Вы можете прочитать об этом здесь: http://en.wikipedia.org/wiki/Same_origin_policy

Есть обходные пути для этого, включая JSONP

0 голосов
/ 08 февраля 2016

Может быть, это поможет.

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

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

Ссылка Ответ Бена Эверарда

...