2012-01-17 2 views
2

Google Translator v2 서비스를 사용 중이며 작은 텍스트에는 효과적입니다. 큰 텍스트의 경우 Google은 GET 대신 POST 요청을 보내는 것에 대한 힌트를 제공합니다. 어느 것이 완벽하게 이해됩니다. 나는 그걸하는 법을 모르겠다. 다음 코드를 사용하고 'POST'로 'GET'을 바꾸면 "414 : URI가 너무 길다"라는 오류가 계속납니다. 누구든지 POST를 사용하여 JSON 함수를 가져와 더 큰 텍스트를 요청할 수있는 방법을 이해할 수 있습니까?JSON은 ASP 대신 GET 대신 POST를 사용합니다.

$.ajax({ 
    type: "GET", 
    url: "https://www.googleapis.com/language/translate/v2", 
    data: { key: "<key>", source: FromLang, target: DestLang, q: Text }, 
    dataType: 'jsonp', 
    success: function (data) { 
    var ReturnedTextalert = data.data.translations[0].translatedText; 
    setEditor(ReturnedTextalert, LongLang, DestField); 
    }, 
    error: function (data) { 
    alert('fail'); 
    } 
}); 
+0

JavaScript로 페이지를 새로 고쳐 주시겠습니까? 브라우저 편집기에서 브라우저가 실제로로드 한 것과 동기화되지 않았음에도 불구하고 업데이트 된 스크립트를 제대로로드하지 못했습니다. CTRL + F5가 해결했습니다. – MrKiane

+0

나는 분명히 그것을 시도하고, 그것을 다시 시도했다. 캐시 등을 지우지 않았습니다. 오류 콘솔은 나에게 414를 주며, 또한 "GET"이 너무 길다 고 말합니다. 의미 eventhou 나는 JSON 함수에 "POST"를 넣었지만 여전히 "GET"으로 간주됩니다. – Nehbur

답변

1

흥미 롭습니다. v1에서도 동일한 문제가 있었지만 Google에서 해결했습니다. 나는 (무료) Bing Translator를 사용해 왔으며 Google 비트뿐만 아니라 모든 비트에서도 작동하는 것으로 보이며 최대 500 바이트는 같지 않습니다. 문제. 다음은 Google을 사용하여 작성한 jQuery 플러그인이며 이제는 Bing : jquery.bunkerhill.com입니다.

+0

v1에서는 다른 청크로 통화를 반복 할 수있는 기능이있었습니다. 전체 텍스트가 번역 될 때까지 계속 번역 된 텍스트를 추가합니다. JSON을 사용하면 간단하게 처리 할 수 ​​있습니다. JSON에서 "succes"내에서도 호출을 반복하려고 시도했지만 Google은 모든 호출이 아니라 최신 호출 만 번역하고 있습니다 .Google에 대한 솔루션이 없다면 Bing 솔루션을 사용해 볼 것입니다. ! 감사! – Nehbur

관련 문제