前端和后端跨域收发json数据

前端和后端跨域收发json数据

【引言】

因为项目的需要,又加深了我在这方面的理解。废话不多说,直接放代码作为经验。

【代码】

Laravel文件中的部分代码:

<?php

namespace App\Http\Controllers;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request; // 接收参数

//设置头部信息
date_default_timezone_set('PRC');//时区设置为中国
header("Access-Control-Allow-Origin", "*");
header("Content-Type: application/json; charset=UTF-8");//utf8mb4_unicode_ci
header("Access-Control-Allow-Methods", "GET, POST");
header('Content-Type:application/json'); 

public function AdminSetSNCode(Request $request){

        $contentType = isset($_SERVER["CONTENT_TYPE"]) ? trim($_SERVER["CONTENT_TYPE"]) : '';

        //判断传递的类型
        if ($contentType != "application/json") {
            $returnArray = array('fg' => 0 );//异常
            return json_encode($returnArray,JSON_UNESCAPED_UNICODE);
        }

        $accountValue = $request -> json('accountValue');
        $postSnValue = $request -> json('postSnValue');

        //检查传递的数据是否为空
        if($accountValue == "" || $postSnValue == ""){
            $returnArray = array('fg' => 0 );//异常
            return json_encode($returnArray,JSON_UNESCAPED_UNICODE);
        }

        //查询SN位是否存在
        $userBaseInfo = DB::connection('r_fd')->table("sn")->where('sn',$postSnValue)->get();
        DB::disconnect('r_fd');

        if($userBaseInfo ->isEmpty()){

            DB::connection('r_fd')->table("sn")->insert([
                                'at' => $accountValue,
                                'sn' => $postSnValue
                            ]);
            DB::disconnect('r_fd');

            $returnArray = array('fg' => 1 ,'sn' => "1");//可以使用该sn码
            return json_encode($returnArray,JSON_UNESCAPED_UNICODE);

        }else{

            $returnArray = array('fg' => 1 ,'sn' => "2");//该sn码已被使用,请重新换一个试试
            return json_encode($returnArray,JSON_UNESCAPED_UNICODE);

        }

}

Javascript文件中的部分代码:

//提交SN码
document.getElementById("postSnValue").addEventListener('touchend',function(){
    
        //检查flag位,检查是否越权
        checkFlag();
    
        var accountValue = localStorage.getItem("at"); 
        var postSnValue = document.getElementById("setSnValue").value; 

        //正则表达式检查SN码
        checkSNCode(postSnValue);
        
        //查询sn码是否存在并写入sn码
        fetch('http://www.artisancode.cn/jxAdminSetSNCode', {
            headers: {
                'Content-Type': 'application/json'
            },
            mode: 'cors',
            method: 'POST',
            body: JSON.stringify({
                "accountValue" :accountValue,
                "postSnValue" :postSnValue
            }),
        }).then(function(response){
            return response.text();
        }).then(function(text){
            returnArray =  JSON.parse(text);
            if(returnArray.fg == 0){
                //异常操作
                return false;
            }
            if(returnArray.sn == "1"){
                //模拟点击登录按钮
                mui.trigger(document.getElementById("callStaffAppListSetting"),'touchend');
            }else{
                plus.nativeUI.toast("该SN码已被他人使用,请换一个试试");
                document.getElementById("setStyle_contentStaffAppListSettingSetSNCode").style.display = "none";
                document.getElementById("setStyle_contentStaffAppListSettingExistSNCode").style.display = "block";
            }
        });
});


回复列表



回复操作

正在加载验证码......

请先拖动验证码到相应位置

发布时间:2020-03-30 11:46:53

修改时间:2020-03-30 11:46:53

查看次数:83

评论次数:0