【问题标题】:Something wrong , sending post request using jquery.post()出了点问题,使用 jquery.post() 发送 post 请求
【发布时间】:2020-09-27 03:05:08
【问题描述】:

我有一个名为 camera.php 的文件,源代码如下:

camera.php

    <div id="video" style="margin: auto;text-align:center;">
            <video autoplay id="vid"></video>
    </div>
        <button id="start" class="btn" onclick="Start()">Start</button>
        <button id="stop" class="btn" onclick="Stop()">Stop</button>
        <button id="takeshot" class="btn" onclick="TakeShot()">TakeShot</button>
    <canvas id="canvas" width="640" height="480"></canvas>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
        video = document.getElementById('vid');

        function Start() {
            if (navigator.mediaDevices.getUserMedia) {
                navigator.mediaDevices.getUserMedia({video : true}).then((stream) => {
                    video.srcObject = stream;
                });
            }
            else
                console.log('ur navigator does not support getUserMedia !!');
        }

        function Stop() {
            if (video.srcObject)
                video.srcObject = undefined;
        }
        function TakeShot() {
            if (video.srcObject) {
                canvas = document.getElementById('canvas');
                gtc = canvas.getContext('2d');
                gtc.drawImage(video, 0, 0);
                imgData = canvas.toDataURL('image/png');
                //gtc.clearRect(0, 0, canvas.width, canvas.height);
                pb = document.getElementById('pb').value;
                pub(imgData, pb);
            }
            else
                console.log('you need to use Webcam to take a shot');
        }
        function pub(img, pb) {
          // using jquery.post() to send request
           $.post('https://xxxxxx.com/camera/save', {'img' : img, 'pub' : pb, 'stick' : stickSelectd}, (result) => {
                 obj = JSON.parse(result);
                 if (obj.error == true) {
                     document.getElementById('msg').innerHTML = obj.msg;
                 }
                 else
                     document.getElementById('msg').innerHTML = 'Publication has been added';
             }).done(() => {
                 alert('request is done');
             }).fail(() => {
                 alert('request is fail');
            });
         // using jquery.ajax() to send post request
            $.ajax({
                url : 'https://xxxxxx.com/camera/save',
                method : 'POST',
                data : {
                    'img' : img, 'pub' : pb, 'stick' : stickSelectd
                },
                headers : "Content-type : image/png",
                Success : (result) => {
                    alert(result);
                },
                err : () => {
                    alert('error');
                }
            });
        }
    </script>

.htaccess 我知道允许来源“*”有太多风险,但我只是将它用于测试。

Header Set Access-Control-Allow-Origin "*"

总是通过 $.post() 请求发送警报“请求失败”,有时从服务器接收请求并保存图像,但 meme 响应正在获取(“请求失败”)。

我的代码一切正常,或者我错过了标题之类的东西,.. ?? 感谢您的帮助

【问题讨论】:

    标签: ajax .htaccess request xmlhttprequest .post


    【解决方案1】:

    它现在可以与 ajax() 一起使用,我将函数 pub 更改为:

    function pub(img, pb) {
                $.ajax({
                    url : 'https://xxxxxxxx.com/camera/save',
                    method : 'POST',
                    data : {
                        'img' : img, 'pub' : pb, 'stick' : stickSelectd
                    },
                    headers : "Content-type : image/png"
                }).done((result) => {
                    obj = JSON.parse(result);
                    if (obj.error == true) {
                        document.getElementById('msg').innerHTML = obj.msg;
                    }
                    else
                        document.getElementById('msg').innerHTML = 'Publication has been added';
                }).fail(() => {
                    document.getElementById('msg').innerHTML = 'something wrong !! try again';
                })
            }
    
    

    我不知道为什么旧语法不起作用,我觉得还可以?!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多