0

我的页面上有几个对象,我遍历这些对象并发出 ajax 请求来请求打开或关闭状态。它们是由 Homeseer 自动化软件控制的灯。

使用萤火虫,我可以看到所有正在制作的内容以及返回的响应。当我按下一个灯时,我会检查所有灯的状态,以防灯的状态发生变化。大约第三次单击后,我可以看到所有请求都在发出,但没有回复。

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);
  ?>
4

0 回答 0