Php Google闭包编译器:编程访问问题
我正在尝试访问该工具,但是PHP和JavaScript都有问题。下面是我为使用编译器的RESTAPI而编写的一个快速而肮脏的PHP脚本: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
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'
));