Scrapyd 서버를 실행 중이고 작업을 예약하려고합니다. 요청은 CURL에서 작동하지만 Ajax에서는 작동하지 않습니다.
내가 CURL을 사용하여 아래에 시도
그것은는 내가 AJAX 요청을 수행 한 것을 내가 이것에 대한 GUI를 가지고 각도의 작은 코드 UI를 수행 한 후, 핀 전자
curl http://XXXXX:6800/schedule.json -d project=stackoverflow -d spider=careers.stackoverflow.com -d setting=DOWNLOAD_DELAY=2 -d arg1=val1
을하고있다 위의 작업을 수행하십시오.
var baseurl = GENERAL_CONFIG.WebApi_Base_URL[$scope.server];
var URI = baseurl +"schedule.json"; //http://XXXXX:6800/schedule.json
var headers = {'content-type': 'application/x-www-form-urlencoded'}
console.log(URI)
$http.post(URI,data = $scope.Filters, headers).success(function (data, status) {
console.log(data)
}).error(function (data, status) {
console.log(status);
alert("AJAX failed!");
});
그러나 나는 No 'Access-Control-Allow-Origin' header is present on the requested resource.
오류가 발생합니다.
해결 방법을 알려줄 수 있습니까?
왜 CURL에서 작동하지만 내 AJAX에서는 작동하지 않습니다.
감사합니다.
나는 스크랩 (Twisted 서버)에 대한 통제권이 없다. 클라이언트 레벨에서 내가 할 수있는 일이 무엇이 있는가? – Backtrack
[JSONP] (http://en.wikipedia.org)를 사용할 수있다./wiki/JSONP) 실제로는 get 요청 만 허용하기 때문에 적합하지 않을 수 있습니다. 휴식 API에는 좋지 않습니다. 어쨌든 .json 확장 프로그램에 게시하는 이유는 무엇입니까? JSONP가 작동하도록 –
https://scrapyd.readthedocs.org/en/latest/api.html#schedule-json을 대신 수행 할 수 있다고 생각합니다. 내 요청 URL에 .json이 있으므로 Scrapyd를 사용하고 있습니다. – Backtrack