기본적으로 Codeigniter에 일부 JSON 페이로드가 포함 된 POST 요청을 보내고 있습니다. 나는 RESTAdapater를 사용한다. JSON은 키가없는 상태로 전송되므로 액세스 할 수 없습니다. 내가 POST 요청이 $this->input("key")
이다 액세스 할 표준적인 방법을 사용하여 CI에EmberJS의 키로 JSON 페이로드 래핑
App.BookmarksNewController = Ember.ObjectController.extend({
save: function(){
this.get("model.transaction").commit();
this.get("target").transitionTo("bookmarks");
}
});
REST에서 구현 :
여기App.Bookmark = DS.Model.extend({
title: DS.attr("string"),
url : DS.attr("string")
});
이 컨트롤러 : 여기
는 모델입니다. 그러나 위 요청이 생성되면 원시 JSON 데이터 만 전송됩니다. 따라서 어떤 식 으로든 그것을 참조 할 수있는 방법이없는 것처럼 보입니다.
string(48) "{"bookmark":{"title":"sdffdfsd","url":"sdfsdf"}}"
내가보고 싶은 것은 :
function post(){
$this->response(var_dump(file_get_contents("php://input")),200);
}
날이 출력을 제공합니다 :
이 예제를 가지고
string(48) payload="{"bookmark":{"title":"sdffdfsd","url":"sdfsdf"}}"
그런 다음 서버는 내가 할 수있을 것입니다 이 JSON에 액세스하려면 $this->post("payload").
그래서 1 of 2입니다. 어쨌든 JSON 페이로드를 키로 감쌀까요? 아니면 아무 키를 사용하여 CI에서 원시 JSON 데이터에 액세스 할 수 있습니까 ??
$ array = json_decode ($ payload); 항목을 배열로 제공하여 원하는 방식으로 참조 할 수 있습니다. – ahmad
왜 키없이 액세스하지 않습니까? $ this-> – intuitivepixel
게시 가능성이 높습니다. PHP의 기본 구현 때문일 수도 있습니다. 유효한 쿼리 문자열이나 그와 같은 것이 아닌 경우 $ _POST 배열에 등록되지 않습니다. 그냥 file_get_contents ("php : // input")로 JSON에 액세스하는 것이 좋을까요 ?? – galdikas