我研究了一下,这代码基本就是通过 POST 传送JSON数据到服务器处理,我希望他不通过js通过php发送处理不是需要提交表单的那种而是直接点链接获取到数据自动发送处理,请问这样是否可以实现
function ajax(method, url, data, successCallback, errCallback) {
        let _this = this
        let traceId = createdRequestId()
        let params = {
            traceId,
            body: {}
        }
        Object.assign(params.body, data)
        console.log(params)
        let xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function () {
            if (xhr.readyState === 4) {
                if (xhr.status === 200) {
                    let responseData = JSON.parse(xhr.responseText);
                    console.log(responseData)
                    successCallback(responseData)
                } else {
                    let responseData = JSON.parse(xhr.responseText);
                    errCallback(responseData)
                }
            } else {
                //loading
            }
        }
        xhr.open(method, url, true);
        if (method == 'POST') {
            xhr.setRequestHeader('Content-Type', 'application/json');
            xhr.send(JSON.stringify(params));
        } else {
            xhr.send(null);
        }    }
    let a = new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve()
        }, 0);
    })
    a.then(() => {
        let realurl = getQueryString('realurl') || ''
        let url = 'https://inf-prdapi.wesure.cn/prdapp/innerapi/acctapi/v1/wesure-converturl/Converturl.Openlink'
        ajax('POST', url, {url: realurl}, (res) => {
            if (res.body && res.body.url) {
                document.getElementById('loading').style.display = 'none'
                window.location.href = res.body.url
            } else {
                alert('请求失败,请稍后再试')
                document.getElementById('loading').style.display = 'none'
            }
        }, (err) => {
            alert(err)
            document.getElementById('loading').style.display = 'none'
        })
    })

解决方案 »

  1.   

    “我希望他不通过js通过php发送”这句话有问题,php是工作在服务端的,手还想伸到浏览器端去不成。
      

  2.   

    页面提交数据,要么通过form,要么通过js
      

  3.   

    PHP是后端开发语言,JS是前端开发语言,如果想要在html页面实现服务器请求操作,就需要使用ajax的方式,提交相应的请求,再由PHP接收处理。
    流程就是:
    HTML->AJAX->php接收处理返回结果->AJAX中可以接收返回结果,再进行后续处理
      

  4.   

    你这段代码关键就在于如下位置,之前的那么多代码是为了配置这个ajax需要的参数。