2013-07-18 8 views
1

나는 this issue에 대해 약간의 독서를했으며, 나는 한순간에 내가 원하는 것을 발견했다. 주석 # 3에서,이 나타납니다 :phantomjs에서 POST 데이터를 객체로 가져 옵니까?

request.post = { 
    Name : "Jonathan Doe", 
    Age : "23", 
    Formula : "a + b == 13%!" 
} 

을 자,이 정확히 내가 내 PhantomJS 웹 서버에 POST 요청을 보낼 때 얻을 할 것입니다.

나는이처럼 보내고있다 :

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "localhost:8585"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_POST, true); 

$data = array(
'ajaxUrl' => $ajaxUrl, 
'analysisFile' => $analysisFile, 
'businessId' => $businessId, 
'website' => $website 
); 

curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
$output = curl_exec($ch); 
$info = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
curl_close($ch); 

을 요청 ..하지만 내가 얻으려면 (JSON.stringify 후) 다음과 같습니다 : 당신이 볼 수 있듯이

{ "headers" : { "Accept" : "*/*", 
     "Content-Length" : "555", 
     "Content-Type" : "multipart/form-data; boundary=----------------------------ad33c9f28b99", 
     "Expect" : "100-continue", 
     "Host" : "localhost:8585" 
    }, 
    "httpVersion" : "1.1", 
    "method" : "POST", 
    "post" : "------------------------------ad33c9f28b99\r\nContent-Disposition: form-data; name=\"ajaxUrl\"\r\n\r\nhttp://localhost/website/ajax.php\r\n------------------------------ad33c9f28b99\r\nContent-Disposition: form-data; name=\"analysisFile\"\r\n\r\nC:\\xampp\\htdocs\\website\\phantom\\get_site_info.js\r\n------------------------------ad33c9f28b99\r\nContent-Disposition: form-data; name=\"businessId\"\r\n\r\n67\r\n------------------------------d33c9f28b99\r\nContent-Disposition: form-data; name=\"website\"\r\n\r\nhttp://www.website.com/\r\n------------------------------ad33c9f28b99--\r\n", 
    "url" : "/" 
} 

, 아니 POST 없다 object, 모든 POST 데이터가 포함 된 큰 문자열. 그것이 내가 cURL을 통해 보내는 방식입니까? 나는 이것에 익숙하지 않고, 내가 가지고있는 cURL 코드는 here이다.

나는 casperjs 1.1.0-DEV로 phantomjs 1.9.1을 실행하고 있습니다. 도움이된다면.

답변

0

캐릭터 라인 화 없습니다.

데이터를 JSON으로 인코딩해야합니다. 배열을 전송할 수 없습니다.

curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); 
+0

Ah-ha! 우리는 거기에 갈. 데이터 인코딩은 트릭을 만들었습니다. 이상하게도, JSON.parse'는 phantoms webserver를 정지 시켰습니다. 그래서 그것에 대해 모르지만, 어쨌든 디버깅을 위해서였습니다. 감사! – Seiyria

+1

@halfer Yup Typo, 답변 수정, 감사합니다. – immulatin

0

그냥 구문 분석을 호출하고 샘 Aleksovs 응답에 추가 (안 JSON.stringify 사용 JSON.parse를) JSON.parse(yourData);

관련 문제