현재 자바스크립트 내용입니다. 문제는 Cross-Allow-Domail No Access 문제가 발생하고 있습니다.
그래서 내용을 찾아보고 해결을 하는데, 잘 안되네요
var obj = new Object();
obj.media = media;
obj.rewardkey = rewardkey;
obj.CMD = cmd;
obj.TOKEN = token;
var json_data = JSON.stringify(obj);
$.ajax({
url : "다른도메인",
type: 'POST',
crossDomain: true,
dataType : 'json',
data: json_data,
success:function(msg){
alert(msg);
},
error:function(request,error){
alert("message:"+request.responseText); } }); // end ajax
php부분입니다. 여러 방법으로 진행중입니다.
1.
<?php
header('Access-Control-Allow-Origin: *');header("Access-Control-Allow-Methods: GET, OPTIONS");
class Main extends CI_Controller {
}
2.
public function test($irl=null)
{ header('Content-type: application/json'); /header('Access-Control-Allow-Origin: *');
$config = $this->set_config; $config['irl'] = $irl; $config['category'] = 'tmoney'; $config['check_cors'] = TRUE;
$this->load->view('header' , $config); $this->load->view('main'); $this->load->view('footer'); }
}
3.
public function __construct() { parent::__construct(); $this->output->set_header('Access-Control-Allow-Origin: *'); $this->load->database(); $this->home_path = $_SERVER['DOCUMENT_ROOT']; $this->set_config = array( 'path1' => null, 'path2' => null, 'slider' => 'on' ); }
이렇게 검색하고 검색하다보니 총 3개 의 방법으로 값을 넣고 진행해보았는데도, 저 문제가 해결이 안되네요...2번 방법의 경우에는 페이지 넘어갈때 header를 추가한 방법입니다. 셋다 controller main.php에서 처리가 되고 있습니다.
문제가 무엇일까요 ㅠㅠ
POST 방식으로는 힘든가요?
var urlp = 'http://210.216.95.108:8090/mktp/api/adhub/ad.api?rewardkey='+rewardkey+'&token='+token;
$.ajax({
url : urlp,
type: 'GET',
crossDomain: true,
dataType : 'jsonp',
data: json_data,
success:function(msg){
alert(msg);
},
error:function(request,error){
alert("message:"+request.responseText);
}
}); // end ajax
정확히 url은 저거입니다. GET에 JSONP로 보내니, 해당 값이 error로 넘어가네요 undefined로요
해당 에러 내용으로는 이렇게 옵니다.
210.216.95.108:8090/mktp/api/adhub/ad.api?rewardkey=37937055&token=7111EB7C…190CF19D20FFD21126FD73CCF0E838A2CE13252CEEA4303A3F19%22}&_=1490848009105:1 Uncaught SyntaxError: Unexpected token :
ad.api?rewardkey=37937055&token=7111EB7CD204190CF19D20FFD21126FD73CCF0E838A2CE13252CEEA4303A3F19&ca…:1 Uncaught SyntaxError: Unexpected token :
token값에 syntaxError가 발생하네요. 이 문제는 무엇일까요...ㅠ
그건 통신이랑 상관없는 서버 에러입니다. 서버 프로그램을 보세요.
통신은 성공한겁니다.
3가지 방법이 있습니다.
1. jsonp 사용
2. curl 사용
3. 해당 사이트에 크로스 도메인 사용가능하게 서버 환경 설정하기 [난이도 어려움]
찾아보시면 전부 방법이 나와있습니다.
이문제는 ajax 오류가 아닙니다.