代码之家  ›  专栏  ›  技术社区  ›  user9786213

AJAX在macOS WebView中不起作用

  •  0
  • user9786213  · 技术社区  · 8 年前

    我为macOS应用程序创建了一个WebView,其中包含一个AJAX调用。当应用程序调用我的本地URL时,相同的WebView工作正常,但当它调用live URL时,AJAX调用不起作用。

    $(document).ready(function () {
        $('#pripolcheck').click(function () {
            var pripolcheck = $('#pripolcheck').val();
            var app = $('#app').val();
            var user_id = $('#user_id').val();
            var contact = $('#contact').val();
    
            // Returns successful data submission message when the entered information is stored in database.
            var dataString = 'pripolcheck1=' + pripolcheck + '&app1=' + app + '&user_id1=' + user_id;
    
            if (pripolcheck == '') {
                alert('Please Fill All Fields');
            } else {
                // AJAX Code To Submit Form.
                $.ajax({
                    type: 'POST',
                    url: 'http://mywebsite.com/ajaxformsubmit.php',
                    data: dataString,
                    cache: false,
                    success: function (result) {
                        // alert(result);
                        // $(".pripol").hide();
                        $('.pripolcheck').prop('checked', true);
                        $('input.pripolcheck').attr('disabled', true);
                    }
                });
            }
    
            return false;
        });
    });
    

    我的本地PHP版本是7.1.8,而我的live server PHP版本是5.4。

    3 回复  |  直到 8 年前
        1
  •  0
  •   Deepti    8 年前

    将函数改为直接单击复选框,将此代码放入复选框 onclick="MyFuncion" ,为什么我要说的是,对于网络视图,我们需要在准确的位置给出准确的命令,而不是浏览器

    您的AJAX调用如下所示,

    function myFunction()
     {
       var pripolcheck = $("#pripolcheck").val();
       var app = $("#app").val();
       var user_id = $("#user_id").val();
       var contact = $("#contact").val();
       // Returns successful data submission message when the entered information is stored in database.
       var dataString = 'pripolcheck1='+ pripolcheck + '&app1='+ app + '&user_id1='+ user_id;
       if(pripolcheck=='')
        {
          alert("Please Fill All Fields");
        }
      else
       {
      // AJAX Code To Submit Form.
         $.ajax({
         type: "POST",
         url: "ajaxformsubmit.php",
         data: dataString,
         cache: false,
         success: function(result){
         // alert(result);
         // $(".pripol").hide();
         $('.pripolcheck').prop('checked', true);
         $("input.pripolcheck").attr("disabled", true);
        }
     });
     }
     return false;
     }
    
        2
  •  -1
  •   delboy1978uk    8 年前
    "My local PHP version is 7.1.8 and my live server PHP version is 5.4."
    

    我想这解释了一切。

    但是,请尝试在通话中设置绝对URL:

    url: 'ajaxformsubmit.php',
    

     url: '/ajaxformsubmit.php',
    

    或者不管实际的路径是什么。只需要一个斜杠就可以了

    http://wherever.com/ajaxformsubmit.php

        3
  •  -2
  •   Anant Ram Verma    8 年前

    如果你使用相同的站点url,请使用相对路径而不是绝对路径,那么就可以了。

    如果使用defrant网站url plz评论我,那么给我一个新的解决方案

    请试一试

    $(document).ready(function () {
    $('#pripolcheck').click(function () {
        var pripolcheck = $('#pripolcheck').val();
        var app = $('#app').val();
        var user_id = $('#user_id').val();
        var contact = $('#contact').val();
    
        // Returns successful data submission message when the entered information is stored in database.
        var dataString = 'pripolcheck1=' + pripolcheck + '&app1=' + app + '&user_id1=' + user_id;
    
        if (pripolcheck == '') {
            alert('Please Fill All Fields');
        } else {
            // AJAX Code To Submit Form.
            $.ajax({
                type: 'POST',
                url: '/ajaxformsubmit.php',
                data: dataString,
                cache: false,
                success: function (result) {
                    // alert(result);
                    // $(".pripol").hide();
                    $('.pripolcheck').prop('checked', true);
                    $('input.pripolcheck').attr('disabled', true);
                }
            });
        }
    
        return false;
    });
    

    });