【发布时间】:2017-08-03 20:47:19
【问题描述】:
我已经在脚本中预定义了所有内容。我想要做的是,当我点击 SUBMIT 时,它会在不刷新页面的情况下完成工作。目前它刷新页面并显示“正在工作”。我想做的是这样的:
这是我的代码:
<?php
$url="http://google.com";
if(isset($_POST["submit"])){
$ch = curl_init("$url");
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch);
$retcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if (200==$retcode) {
echo "working";
} else {
echo "failed";
}
}
?>
<form action='ping.php' method='post'><input type="submit" name="submit"></form>
<script src="plugins/jQuery/jquery-2.2.3.min.js"></script>
<script type="text/javascript">
var $url = '<?php echo $url ?>';
$('#submit').click(function(e){
e.preventDefault();
var $this = $(this);
$.get($url,function(data){
$this.text('Success');
});
});
</script>
编辑:
上例中的脚本显示错误:
[请求]已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头。
所以我打算用 PHP cURL 来做。如果有人知道任何解决方案,请帮助。
【问题讨论】:
-
为什么要加载两个版本的jQuery?
-
@jessegavin 忘记删除了。已删除。
-
没有 id 属性为 'submit' 的元素,因此不会调用点击处理程序(即
$('#submit').click(function(e){...) -
CORS 或跨域请求共享 (developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS),浏览器在发送实际表单数据之前发出 HTTP OPTIONS 请求。数据源/Web 应用程序需要使用 Allow-Access-* 标头集进行响应,以告诉浏览器可以使用所需的 HTTP 方法向所需资源发出请求。简单的解决方法:使服务器响应 200 OK 和一组 CORS 标头以允许表单提交到服务器。如果您需要更多信息,请 PM。
标签: javascript php jquery html php-curl