2011-10-25 2 views
2

원격 서버에 호스팅 된 CSV 파일이 있습니다. jQuery가 jQuery 배열로 변환 될 수 있도록 해당 파일을 사용하는 방법이 있습니까? 여전히 크로스 사이트 스크립팅 문제가 발생합니까?jQuery를 통해 원격 CSV 파일을 소비 하시겠습니까?

+0

시도해보십시오. http://stackoverflow.com/a/12289296/761963 –

답변

4

Same Origin Policy의 제한 사항이 적용됩니다. 간단히 말해, AJAX는 다른 도메인으로 호출되는 것이 금지되어 있으며 내용이 무엇이든 관계없이 항상 (아주 드물게 예외적으로) 실패합니다.

JSONP (주로 API에서 반환 한 데이터에 적용 가능) 또는 proxy the request through your own server/domain을 사용해야합니다. csv로 자체 소비

오히려 간단하다 :

csv_arr = csvstring.split(/\n/); 
$.each(csv_arr, function(i,e){ 
    csv_arr[i] = e.split(','); 
}); 

편집 :주의, @echoback가 언급 한 바와 같이, 내가 인용 값의 가능성을 놓쳤다.

운좋게도 there's an awesome plugin that turns CSV into JSON. 그냥 그렇게.

+0

따옴표 붙은 문자열을 고려해야합니다. ''hello, world ', 1234'는 세 가지가 아니라 두 가지 요소입니다. – harbichidian

+0

@echoback 고마워, 나는 그것을 놓쳤다. 이에 따라 답변이 업데이트되었습니다. – vzwick

+0

csonv.js가 나를 위해 제대로 작동하지 않는 것 같습니다 (Firefox). 나는 D3를 시도 할 것이다 : http://learnjsdata.com/read_data.html –

0

예, 여전히 도메인 간 문제를 해결해야합니다. 가장 좋은 방법은 다른 쪽에서 웹 서비스를 사용하고 JSONP와 콜백을 통해 소비하는 것입니다.

0

크로스 도메인 문제에 대해서는 잘 모르겠지만 jquery ajax를 사용하여 동일한 도메인에서 csv 파일을 가져온 다음 줄 바꿈과 쉼표에 javascript split()을 사용하여 배열을 만드십시오.

관련 문제