Php Google闭包编译器:编程访问问题

Php Google闭包编译器:编程访问问题,php,jquery,api,curl,google-closure-compiler,Php,Jquery,Api,Curl,Google Closure Compiler,我正在尝试访问该工具,但是PHP和JavaScript都有问题。下面是我为使用编译器的RESTAPI而编写的一个快速而肮脏的PHP脚本: <?php if (!empty($_POST)) { echo '<pre>'; print_r($_POST); echo '</pre><br />'; foreach ($_POST as $k => &$v) $v = urlencode($v); $ch = curl_init();

我正在尝试访问该工具,但是PHP和JavaScript都有问题。下面是我为使用编译器的RESTAPI而编写的一个快速而肮脏的PHP脚本:

<?php
if (!empty($_POST)) {
echo '<pre>';
print_r($_POST);
echo '</pre><br />';
  foreach ($_POST as $k => &$v) $v = urlencode($v);
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST);
  curl_setopt($ch, CURLOPT_URL, 'http://closure-compiler.appspot.com/compile');
  echo curl_exec($ch);
} else {
  echo "
    <html>
      <body>
        <form action='' method='post'>
          <p>Type JavaScript code to optimize here:</p>
          <textarea name='js_code' cols='50' rows='5'>
            function hello(name) {
              // Greets the user
              alert('Hello, ' + name);
            }
            hello('New user');
          </textarea>
          <input type='hidden' name='compilation_level' value='WHITESPACE_ONLY' />
          <input type='hidden' name='output_format' value='json' />
          <input type='hidden' name='output_info' value='compiled_code' />
          <input type='hidden' name='warning_level' value='VERBOSE' />
          <br /><br />
          <input type='submit' value='Optimize' />
        </form>
      </body>
    </html>";
}
我想,也许我的电脑有问题。所以我尝试了JavaScript(通过调用)。我创建了一个随机的Firefox窗口,并在控制台中运行了以下代码:

“网络”面板显示了403错误

我遗漏了什么?

根据API文档

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/x-www-form-urlencoded'
));
在你的代码中没有看到

根据API文档,在
curl\u exec()之前

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/x-www-form-urlencoded'
));
在你的代码中没有看到

curl\u exec()之前,由于同源策略,Ajax(通过jQuery或其他方式)将无法工作。(ajax请求限制在同一个域中,除非结果是jsonp)

只需使用您的示例发布信息,它的工作原理如中所示

所以这一定是@German Rumm提到的。

Ajax(通过jQuery或其他方式)将无法工作,因为同源策略。(ajax请求限制在同一个域中,除非结果是jsonp)

只需使用您的示例发布信息,它的工作原理如中所示


所以这一定是@German Rumm提到的..

Duh。我应该意识到这一点。谢谢嗯。我应该意识到这一点。谢谢
The request must always have a Content-type header of application/x-www-form-urlencoded
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/x-www-form-urlencoded'
));