매개 변수를 가져 와서 적절한 Suitelet에 제출 한 다음 생성 된 JSON을 Netsuite에서 노드로 전달하는 포틀릿 양식 스크립트를 만들었습니다. js Heroku 서버.Netsuite에서 Heroku 로의 JSON HTTP 요청 구문 분석 오류 "SyntaxError : 예상치 못한 토큰 p"
내가 만든 json은 정상이며 정확한 값을 반환하지만 요청을 보낼 때 heroku 로그는 오류 SyntaxError: Unexpected token p
을 제공합니다.
이상한 점은 서버를 로컬에서 실행하고 우편 배달부를 통해 보낼 때이 모든 것이 효과적이라는 것입니다. 문제를 일으키는 Netsuite 요청을 통해 모든 것을 전송할 때입니다. 또한 body-parser를 오류 참조 body-parser로 사용할 수도 있습니다. 나는이 느낌이 answer 올바른 경로에 있었지만 결국 도움이되지 않았다. 시정하는 방법에 대한 아이디어가 있습니까?
json으로 요청을 처리하는 Suitelet POST 요청 :
var json = {
"par": {
"id":request.getParameter("custpage_id"),
"num":request.getParameter("custpage_num")
},
"in": {
"headers":temp.toString()
}
};
for (var i = 0; i < info.length; i++){
var newVal = "val" + (i+1);
json.in[newVal] = info[i];
}
nlapiRequestURL("https://somelink.herokuapp.com/", json, {"Content-Type":"application/json"});
에게 Heroku 코드 :
app.use(cors());
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
var server = app.listen(process.env.PORT || 8080, function() {
var port = server.address().port;
console.log('port #: ', port);
});
app.post('/', function(req, res) {
console.log(JSON.stringify(req.headers));
console.log(req.body);
});
전체 오류 :
SyntaxError: Unexpected token p
at parse (/app/node_modules/body-parser/lib/types/json.js:83:15)
at invokeCallback (/app/node_modules/raw-body/index.js:262:16)
at /app/node_modules/body-parser/lib/read.js:116:18
at done (/app/node_modules/raw-body/index.js:251:7)
at IncomingMessage.onEnd (/app/node_modules/raw-body/index.js:307:7)
at emitNone (events.js:86:13)
at IncomingMessage.emit (events.js:185:7)
at endReadableNT (_stream_readable.js:974:12)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickCallback (internal/process/next_tick.js:98:9)
편집 : json으로 그 아래에 인쇄해야합니다. 이 우편 배달을 통해 작동하지만이 Netsuite의를 통해 전송되는 경우 :
{
"par": {
"id": "customID",
"num": "132"
},
"in": {
"headers": "Item,Current",
"val1": "98696,7938",
"val2": "58839,936"
}
}
UPDATE : 좀 더 테스트 후 나는 nlapiRequestURL()
에서 헤더를 꺼내서 전송되는 정보는 JSON, 요청 기본값을하더라도 "content-type":"application/x-www-form-urlencoded; charset=UTF-8"
. 업데이트 요청은 다음과 같습니다 nlapiRequestURL("https://somelink.herokuapp.com/", json);
The Heroku POST request code now:
app.post('/', function(req, res) {
console.log(JSON.stringify(req.headers));
console.log(JSON.stringify(req.body));
});
이는 JSON 그러나 형식이 잘못 전송합니다. 대신 내 편집에서로 표시해야 JSON의, 나는 아래 얻을 :
{
"par": "{id=customID,num=132}",
"in": "{headers=Item,Current, val1=98696,7938, val2=58839,936}"
}
'request.getParameter ("custpage_id")'..이 값은 무엇입니까? –
@suraj 사용자가 입력 한 문자열 값입니다. 숫자는 숫자이고 id는 문자열입니다. JSON은 완벽하게 나옵니다 – VicDid
JSON이 어떻게 생겼습니까? 그'console.log()'호출은 실제로 무엇을 출력합니까? – Pointy