Можно ли проанализировать удаленный файл с прототипом ajax / javascript - PullRequest
0 голосов
/ 18 октября 2011

Я хочу решить эту загадку, но файл находится на удаленном сервере. Как я могу разобрать этот файл, потому что я получаю эту ошибку.

XMLHttpRequest не может загрузить http://www.weebly.com/weebly/publicBackend.php. Источник http://mysite.com не разрешен Access-Control-Allow-Origin. Отказался от получения небезопасного заголовка "X-JSON"

Код ниже

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <title>Untitled Document</title>
        <script type="text/javascript" src="prototype.js"></script>
        <!-- Puzzle starts here -->
<script type='text/javascript'>

  // Note: there may be some unfinished code here, that needs finishing...

  // You should probably try to get this function working...
  function solvePuzzle() {

        new Ajax.Request('http://www.weebly.com/weebly/publicBackend.php', {
          parameters:{
            pos: 'solvepuzzle'
          },
          onSuccess:handlerSolvePuzzle,
          onFailure:function() { alert('Transmission error. Please try again.'); }
        });

  }

  function handlerSolvePuzzle(t) {


        var responseText = t.responseText;
        responseText = responseText.replace(/\n/, "");

        if (responseText.match(/!!$/)) {

          alert("Oops: "+responseText);

        } else {

          // Still need to decode the response

          // Once the response is decoded, we can fire off the alert
          // giving the user further instructions
          //alert(responseText);
          //alert('To complete the challenge, '+t.responseText);

        }

  }

</script>
    </head>
    <body>

<input type="button" onclick="solvePuzzle()" value="hello"/>
    </body>
</html>

Ответы [ 3 ]

1 голос
/ 23 февраля 2012

Инструменты разработчика Chrome и Firefox позволяют изменять JS на лету.

Если вы работаете в Chrome, откройте консоль, перейдя в меню View-> Developer-> JavaScript Console.Скопируйте JS из источника страницы.Измени это.Затем вставьте измененные функции JavaScript в консоль.Нажмите Enter.Затем начните вводить 'solvePuzzle ();'Нажмите Enter.Вы увидите ответ.

Для Firefox вам необходимо скачать плагин Firebug.

0 голосов
/ 19 октября 2011

Подумайте об установке HTTP-туннеля на вашем "mysite.com", чтобы браузеру не приходилось напрямую обращаться к "weebly.com".

0 голосов
/ 18 октября 2011

Вы не можете сделать это из JavaScript из-за той же политики происхождения: https://developer.mozilla.org/en/Same_origin_policy_for_JavaScript. Если этот внушительный сайт поддерживает какой-то JSON API, вы можете использовать JSONP: http://en.wikipedia.org/wiki/JSONP. Кроме этого, вы 'Возможно, лучше взаимодействовать с этим сайтом через серверную часть из-за ограничений безопасности на стороне клиента.

...