JavaScriptResult
을 반환하기 위해 정상적으로 작동하는 MVC 4를 사용하고 있습니다. 나는 간단한 자바 스크립트로 그것을 테스트했다.반환 된 스크립트에서 jquery getScript가 질식합니다.
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Categories Page</title>
<script type='text/javascript' src='https://www.google.com/jsapi'></script>
<script src="~/Scripts/jquery-2.0.0.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$.getScript('http://localhost:53353/z/categories');
});
</script>
</head>
<body>
<h2>test</h2>
<div id="chart_div">
</div>
</body>
</html>
을하지만 대체 할 경우 : 내가 getScript 브라우저에 자바 스크립트를 반환 불을 지르고에서 볼 수 있지만 그러나
, 아래의 코드가 작동하지 않습니다
$(document).ready(function() {
$.getScript('http://localhost:53353/z/categories');
});
을 있습니다 .. 함께 getScript
이 호출되면 자바 스크립트가 브라우저로 반환되고 코드가 작동합니다.
getScript
이 호출 될 때 반환되는 자바 스크립트는 google barchart를 호출하는 표준 자바 스크립트입니다. getScript
이 스크립트 태그를 추가하기 때문에 반환 된 스크립트에서도 스크립트 태그가 생략됩니다.
getScript
은 반환 된 스크립트를 복사하여 붙여 넣기하고 getScript
섹션으로 바꿀 수있는 이유는 무엇입니까? 그 이유는 반환 된 스크립트에 결함이 없다는 것을 확실히 알기 위해서입니다. 대체 할 때 올바르게 렌더링됩니까?
확인. MVC를 잊어 버리자. 우리가 지금을 다시 작성하는 경우,
google.load('visualization', '1', { packages: ['corechart'] });
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Year', 'Sales', 'Expenses'],
['2004', 1000, 400],
['2005', 1170, 460]
]);
var options = { title: 'Company Performance', vAxis: { title: 'Year', titleTextStyle: { color: 'red' } } };
var chart = new google.visualization.BarChart(document.getElementById('chart_div')); chart.draw(data, options); }
그러나 :
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Categories Page</title>
<script type='text/javascript' src='https://www.google.com/jsapi'></script>
<script src="scripts/jquery-2.0.0.js"></script>
<script type="text/javascript" src="scripts/testscript.js"></script>
</head>
<body>
<h2>test</h2>
<div id="chart_div">
</div>
</body>
</html>
testscript.js 만 포함 그냥, 우리는 작동 다음이 ( https://developers.google.com/chart/interactive/docs/gallery/barchart의 예를 기반으로 자바 스크립트) HTML을 사용하여 라인 ...
<script type="text/javascript" src="scripts/testscript.js"></script>
... 같은
<script type="text/javascript">
$(document).ready(function() {
$.getScript('scripts/testscript.js');
});
</script>
... Firebug의 Response에서 testscript.js의 내용을 볼 수 있지만 브라우저가 멈 춥니 다. testscript.js의 내용을 alert('hello');
과 같이 간단하게 대체하면 getScript가 정상적으로 작동하지만 testscript.js와 getScript가 복잡해지면 getScript가 작동을 멈 춥니 다.
브라우저 콘솔의 네트워크 탭에서 확인하십시오. 요청 상태는 무엇입니까? 200 인 경우 머리글과 응답 본문을 검사하십시오. – charlietfl
예, 상태가 "200 OK"이므로 헤더를 확인한 결과 : 헤더 요청 : Accept \t accept text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; Q = 0.01 수락 인코딩을 \t GZIP을 을 수축 ... 응답 헤더 : 캐시 제어 개인 콘텐츠 인코딩 gzip을 콘텐츠 길이 447 콘텐츠 형식 응용 프로그램/X-자바 스크립트; charset = utf-8 ... 요청 - 응답 헤더의 내용 유형 차이점은 무엇입니까? charset? JavaScriptResult를 사용하여 이것을 변경할 수 있는지 확실하지 않습니다. 응답 본문은 테스트를 위해 자바 스크립트를 복사하여 태그에 붙여 넣기 위해 사용 했으므로 OK입니다. – flarebear