一个ajax跨域问题

ziluopao 发布于 2016/06/06 12:03
阅读 407
收藏 1

提示是这个XMLHttpRequest cannot load http://localhost/admin/index.php?act=mb_special&op=special_item_add. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1' is therefore not allowed access.

似乎本地环境不允许,假如非要在本地做,怎么解决此问题

加载中
0
iehyou
iehyou
localhost 改成127.0.0.1
ziluopao
ziluopao
我试了一下,这个办法行
0
blindcat
blindcat
header('content-type:application:json;charset=utf8');  
header('Access-Control-Allow-Origin:*');  
header('Access-Control-Allow-Methods:POST');  
header('Access-Control-Allow-Headers:x-requested-with,content-type');



Access-Control-Allow-Origin
0
HeartArea
HeartArea

response 响应时设置header增加如下一行:

header('Access-Control-Allow-Origin:*'); 

另外建议服务监听改为 listen:*

hosts文件里面localhost指向127.0.0.1

0
ziluopao
ziluopao

引用来自“HeartArea”的评论

response 响应时设置header增加如下一行:

header('Access-Control-Allow-Origin:*'); 

另外建议服务监听改为 listen:*

hosts文件里面localhost指向127.0.0.1

header('Access-Control-Allow-Origin:*'); 

这句话加在哪里呢,就我的这个问题:

是不是要加在(index.php?act=mb_special&op=special_item_add)中的special_item_add的方法里

public function special_item_addOp() {
        header('Access-Control-Allow-Origin:*');
        $model_mb_special = Model('mb_special');
        
        $param = array();
        $param['special_id'] = $_POST['special_id'];
        $param['item_type'] = $_POST['item_type'];
        
        
        if($param['item_type'] == 'adv_list') {
            $result = $model_mb_special->isMbSpecialItemExist($param);
            if($result) {
                echo json_encode(array('error' => '111111'));die;
            }
        }
	
        if($param['item_type'] == 'goods1') {
            $result = $model_mb_special->isMbSpecialItemExist($param);
            if($result) {
                echo json_encode(array('error' => '222222'));die;
            }
        }
	
        if($param['item_type'] == 'goods2') {
            $result = $model_mb_special->isMbSpecialItemExist($param);
            if($result) {
                echo json_encode(array('error' => '333333'));die;
            }
        }
	
	//end

        $item_info = $model_mb_special->addMbSpecialItem($param);
        if($item_info) {
            echo json_encode($item_info);die;
        } else {
            echo json_encode(array('error' => '99'));die;
        }
    }


但象上面这样添加我试了一下不行呢

0
HeartArea
HeartArea

引用来自“ziluopao”的评论

引用来自“HeartArea”的评论

response 响应时设置header增加如下一行:

header('Access-Control-Allow-Origin:*'); 

另外建议服务监听改为 listen:*

hosts文件里面localhost指向127.0.0.1

header('Access-Control-Allow-Origin:*'); 

这句话加在哪里呢,就我的这个问题:

是不是要加在(index.php?act=mb_special&op=special_item_add)中的special_item_add的方法里

public function special_item_addOp() {
        header('Access-Control-Allow-Origin:*');
        $model_mb_special = Model('mb_special');
        
        $param = array();
        $param['special_id'] = $_POST['special_id'];
        $param['item_type'] = $_POST['item_type'];
        
        
        if($param['item_type'] == 'adv_list') {
            $result = $model_mb_special->isMbSpecialItemExist($param);
            if($result) {
                echo json_encode(array('error' => '111111'));die;
            }
        }
	
        if($param['item_type'] == 'goods1') {
            $result = $model_mb_special->isMbSpecialItemExist($param);
            if($result) {
                echo json_encode(array('error' => '222222'));die;
            }
        }
	
        if($param['item_type'] == 'goods2') {
            $result = $model_mb_special->isMbSpecialItemExist($param);
            if($result) {
                echo json_encode(array('error' => '333333'));die;
            }
        }
	
	//end

        $item_info = $model_mb_special->addMbSpecialItem($param);
        if($item_info) {
            echo json_encode($item_info);die;
        } else {
            echo json_encode(array('error' => '99'));die;
        }
    }


但象上面这样添加我试了一下不行呢

没问题,如果不行就是别的原因。
0
littledew
littledew

关闭 chrome 进程 

命令行打开:open -a "Google Chrome" --args -disable-web-security --user-data-dir=

返回顶部
顶部