我的页面上有几个对象,我遍历并发出一个ajax请求来打开或关闭状态。它们由家庭自动化软件控制。
使用萤火虫我可以看到所有正在制作的回复。当我按下灯时,我会检查所有灯的状态,以防灯的状态发生变化。大约第三次点击后,我可以看到所有请求,但没有回复。
Jquery将url传递给PHP脚本,该脚本进行调用并将数据返回给jquery,这样可以解决跨域安全问题。
我可以打开另一个标签并将url post语句复制到地址中,页面会显示响应。
当我完成我的请求后,我没有关闭某些内容/为什么在第三次点击后发出请求但没有回复???
这是我的代码
function X10Check(){
//This Ajax checks the current on/off status of the passed X10 code
$('div.lightchk').each(function(i, obj) {
$x10Device = $(this).data("x10");
var element = $(this);
var data = "url=http://192.168.0.34:81/tenHsServer/tenHsServer.aspx?t=ab&f=DeviceStatus&d=" + $x10Device ;
$.ajax({
url:"urlencode.php",
data: data,
type: "POST",
success: function(data)
{
myd = $('<span />').html(data).find("#Result").text();
var Nmyd = myd.charAt(3);
if (Nmyd ==':')Nmyd = myd.charAt(4);
if (Nmyd == '2'){element.removeClass('off').addClass('on')}else{element.removeClass('on').addClass('off')};
},
error: function (request, status, error)
{
// alert(request.responseText);
}
});
});
};
它在这里进行php调用是使用php脚本的php调用允许我解决跨域安全问题。
<?php
//set POST variables
$url = $_POST['url'];
unset($_POST['url']);
$fields_string = "";
//url-ify the data for the POST
foreach($_POST as $key=>$value) {
$fields_string .= $key.'='.urlencode($value).'&';
}
rtrim($fields_string,"&");
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
$url .= '&';
$url .= $fields_string;
curl_setopt($ch,CURLOPT_URL,$url);
//execute post
$string = curl_exec($ch);
curl_exec($ch);
curl_close($ch);
?>